Quero mostrar minha variável de ambiente PATH de uma maneira mais legível para humanos.
$ 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
Estou pensando em algo assim:
$ 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
fonte
fonte
Respostas:
Você pode usar
tr
.Você também pode fazer isso em alguns shells (testados no bash e zsh):
No zsh, você pode usar a
$path
variável para ver seu caminho com espaços em vez de dois pontos.Que pode ser combinado com
printf
ouprint
.Os
<<<
operadores são chamados herestrings. Herestrings passa a palavra à direita para a entrada padrão do comando à esquerda.Se o seu shell não os suportar, use
echo
um cachimbo.fonte
echo $PATH | tr ':' '\n'
mas é mais clara sua solução.print -l $path
salva algumas teclas. Ele falha se$path
contém barras invertidas, mas isso é altamente incomum.$PATH
.Aqui está uma maneira rápida de
bash
fonte
IFS
usando um subshell. Exemplo(IFS=: arr=($PATH); printf "%s\n" "${arr[@]})")
/bin:/usr/bin:
costumava ser um valor comum para$PATH
)$PATH
contém alguns caracteres curinga (improváveis)bash
qualquer maneira, você pode usarIFS=: read -a arr <<< "$PATH"
para a parte de divisão. OIFS
novo valor dessa maneira será usado apenas durante a execução doread
, portanto, não há necessidade de restaurá-lo. pastebin.com/7E7C4AcRIFS
o novo valor persiste após a criação da matriz, mas não após a execuçãoread
?Expandindo a solução de Smith John , isso cria um bom alias no seu
.bash_profile
:fonte
Observe que um caminho não definido tem um significado diferente de um caminho vazio. Um PATH vazio contém um elemento vazio, e isso significa procurar apenas executáveis no diretório atual; um PATH não definido significa procurar executáveis em uma lista padrão de diretórios (mas observe que em alguns sistemas, nem todas as ferramentas concordam com o conteúdo de essa lista)
Em
zsh
:Nos shells POSIX (observe que,
zsh
mesmo nosh
modo, não é POSIX a esse respeito):fonte