GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Iterieren Sie mithilfe des Shell-Skripts über die $PATH-Variable

Sie können read verwenden mit Trennzeichen auf : gesetzt

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

Der einfachste Weg ist wahrscheinlich, IFS zu ändern zu einem Doppelpunkt und lass es die Worttrennung erledigen:

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

Aber das könnte Dateinamen-Globbing auslösen, in dem seltsamen Fall, dass Ihre PATH enthaltene Zeichen wie *?[] . Sie müssen set -f verwenden um das zu vermeiden.

Obwohl IFS geändert wird könnte sowieso als problematisch angesehen werden, da es den Rest des Skripts betrifft. In Bash könnten wir also einfach die Pfade mit read -a in ein Array aufteilen , das hat auch kein Problem mit Glob-Zeichen:

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

mit echo:

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

sed:

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

tr:

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

Python:

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

zur iterativen Verwendung für:

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

Linux
  1. So setzen Sie Ihre $PATH-Variable in Linux

  2. Shell-Skript hängt am Mail-Befehl?

  3. Wie erstelle ich eine Rotationsanimation mit Shell-Skript?

  4. Wie bekomme ich den Namen des aktuellen Git-Zweigs in eine Variable in einem Shell-Skript?

  5. Senden von HTML-Mails mit einem Shell-Skript

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

Farbige Shell-Script-Ausgabebibliothek

Shell-Skript ändert Verzeichnis mit Variable

Variablenbereich für Bash-Shell-Skripte und Funktionen im Skript

Rufen Sie die MAC-Adresse mit Shell-Skript ab

Wo wird die PATH-Variable in Ubuntu gesetzt?