Ich möchte meine PATH-Umgebungsvariable besser lesbar anzeigen.
$ echo $PATH
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/bin:/usr/local/git/bin:/Users/arturo/.gvm/groovy/current/bin:/Users/arturo/.gvm/grails/current/bin:/Users/arturo/.gvm/griffon/current/bin:/Users/arturo/.gvm/gradle/current/bin:/Users/arturo/.gvm/lazybones/current/bin:/Users/arturo/.gvm/vertx/current/bin:/Users/arturo/.gvm/bin:/Users/arturo/.gvm/ext:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
Ich denke in etwa so:
$ echo $PATH | some cut and awk magic
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin
/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/bin
...
shell
environment-variables
path
Arturo Herrero
quelle
quelle
Antworten:
Sie können verwenden
tr
.Sie können dies auch in einigen Shells tun (getestet in bash und zsh):
In zsh können Sie die
$path
Variable verwenden, um Ihren Pfad mit Leerzeichen anstelle von Doppelpunkten anzuzeigen.Welche kann mit
printf
oder kombiniert werdenprint
.Die
<<<
Operatoren heißen Herestrings. Herestrings geben das Wort zu ihrer Rechten an die Standardeingabe des Befehls zu ihrer Linken weiter.Wenn Ihre Shell sie nicht unterstützt, verwenden Sie
echo
und eine Pipe.quelle
echo $PATH | tr ':' '\n'
aber klarer deine Lösung.print -l $path
Speichert in zsh einige Tastatureingaben. Es schlägt fehl, wenn$path
Backslashes enthalten sind, aber das ist höchst ungewöhnlich.$PATH
.Hier ist ein schneller Weg mit
bash
quelle
IFS
indem Sie eine Subshell verwenden. zB(IFS=: arr=($PATH); printf "%s\n" "${arr[@]})")
/bin:/usr/bin:
früher ein allgemeiner Wert für$PATH
)$PATH
einige Platzhalterzeichen enthalten (unwahrscheinlich)bash
ohnehin angegeben haben, können SieIFS=: read -a arr <<< "$PATH"
für den Aufteilungsteil verwenden. Auf diese Weise wirdIFS
der neue Wert nur während der Ausführung von verwendetread
, sodass er nicht wiederhergestellt werden muss. pastebin.com/7E7C4AcRIFS
der neue Wert nach der Array-Erstellung erhalten bleibt, aber nicht nach der Ausführungread
?Aufbauend auf Smith Johns Lösung, das macht für einen schönen Alias in Ihrer
.bash_profile
:quelle
Beachten Sie, dass ein nicht festgelegter PATH eine andere Bedeutung hat als ein leerer PATH. Ein leerer PFAD enthält ein leeres Element. Das bedeutet, dass nur im aktuellen Verzeichnis nach ausführbaren Dateien gesucht wird. Ein nicht festgelegter PFAD bedeutet, dass in einer Standardliste von Verzeichnissen nach ausführbaren Dateien gesucht wird diese Liste)
In
zsh
:In POSIX-Shells (beachten Sie, dass
zsh
auch imsh
Modus diesbezüglich kein POSIX vorhanden ist):quelle