GNU/Linux >> Tutoriels Linux >  >> Linux

Itérer sur la variable $ PATH à l'aide d'un script shell

Vous pouvez utiliser read avec un délimiteur défini sur :

while read -d ':' p; do
   echo "$p"
done <<< "$PATH:"

Le moyen le plus simple est probablement de changer IFS à deux-points et laissez le mot fractionner le faire :

IFS=:
for p in $PATH ; do 
    echo "$p"
done

Mais cela pourrait déclencher le remplacement du nom de fichier, dans le cas étrange où votre PATH contenait des caractères comme *?[] . Vous devez utiliser set -f pour éviter cela.

En changeant IFS pourrait être considérée comme problématique de toute façon, car elle affecte le reste du script. Donc, dans Bash, nous pourrions simplement diviser les chemins vers un tableau avec read -a , cela n'a pas non plus de problème avec les caractères glob :

IFS=: read -a paths <<< "$PATH"
for p in "${paths[@]}" ; do
    echo "$p"
done

avec écho :

echo "${PATH//:/$'\n'}"

sed :

sed 's/:/\n/g' <<< "$PATH"

tr :

tr ':' '\n' <<< "$PATH"

Python :

python -c "import os; print os.environ['PATH'].replace(':', '\n')"

pour une utilisation itérative pour :

for i in ${PATH//:/ }; do echo $i; done

Linux
  1. Comment définir votre variable $PATH sous Linux

  2. Comportement inattendu d'un script shell ?

  3. Comment créer une animation de rotation à l'aide de Shell Script ?

  4. Envoi de courrier HTML à l'aide d'un script shell

  5. Vérifier la connectivité de la base de données à l'aide du script Shell

Comment stocker une commande Linux en tant que variable dans un script shell

Connexion au WiFi à l'aide du shell adb

Itérer sur les lignes au lieu des mots dans une boucle for du script shell

Copier et écraser un fichier dans un script shell

Bibliothèque de sortie de script shell coloré

Où est la variable PATH définie dans Ubuntu ?