Je souhaite afficher ma variable d'environnement PATH d'une manière plus lisible par l'homme.
$ 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
Je pense à quelque chose comme ça:
$ 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
la source
la source
Réponses:
Vous pouvez utiliser
tr
.Vous pouvez également le faire dans certains shells (testés en bash et zsh):
Dans zsh, vous pouvez utiliser la
$path
variable pour voir votre chemin avec des espaces au lieu de deux points.Qui peut être combiné avec
printf
ouprint
.Les
<<<
opérateurs s'appellent herestrings. Herestrings passe le mot à leur droite à l'entrée standard de la commande à leur gauche.Si votre shell ne les supporte pas, utilisez
echo
un tuyau.la source
echo $PATH | tr ':' '\n'
mais votre solution est plus claire.print -l $path
enregistre quelques frappes. Il échoue si$path
contient des barres obliques inverses, mais c'est très inhabituel.$PATH
.Voici un moyen rapide avec
bash
la source
IFS
en utilisant un sous-shell. par exemple(IFS=: arr=($PATH); printf "%s\n" "${arr[@]})")
/bin:/usr/bin:
valeur usuelle pour$PATH
)$PATH
contient des caractères génériques (peu probable)bash
toute façon spécifié , vous pouvez utiliserIFS=: read -a arr <<< "$PATH"
pour la division. LaIFS
nouvelle valeur de cette manière ne sera utilisée que lors de l'exécution de laread
, inutile donc de la restaurer. pastebin.com/7E7C4AcRIFS
la nouvelle valeur persiste après la création du tableau, mais pas après son exécutionread
?En développant la solution de Smith John , cela fait un joli alias dans votre
.bash_profile
:la source
Notez qu'un PATH non défini a une signification différente d'un PATH vide. Un PATH vide contient un élément vide, ce qui signifie que vous recherchez des exécutables dans le répertoire actuel uniquement. Un PATH non défini signifie rechercher des exécutables dans une liste de répertoires par défaut (notez que sur certains systèmes, tous les outils ne s'accordent pas sur le contenu cette liste)
Dans
zsh
:Dans les shells POSIX (notez que
zsh
même ensh
mode, ce n'est pas POSIX à cet égard):la source