Quiero mostrar mi variable de entorno PATH de una manera más legible para los 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
Estoy pensando en algo como esto:
$ 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
fuente
fuente
Respuestas:
Puedes usar
tr
.También puede hacer esto en algunos shells (probados en bash y zsh):
En zsh, puede usar la
$path
variable para ver su ruta con espacios en lugar de dos puntos.Que se puede combinar con
printf
oprint
.Los
<<<
operadores se llaman herejes. Las herejías pasan la palabra a su derecha a la entrada estándar del comando a su izquierda.Si su caparazón no los soporta, use
echo
una tubería.fuente
echo $PATH | tr ':' '\n'
pero es más clara su solución.print -l $path
guarda algunas pulsaciones de teclas. Falla si$path
contiene barras invertidas, pero eso es muy inusual.$PATH
.Aquí hay una manera rápida con
bash
fuente
IFS
utilizando una subshell. por ejemplo(IFS=: arr=($PATH); printf "%s\n" "${arr[@]})")
/bin:/usr/bin:
solía ser un valor común para$PATH
)$PATH
contiene algunos caracteres comodín (poco probable)bash
todos modos, puede usarloIFS=: read -a arr <<< "$PATH"
para la parte de división.IFS
El nuevo valor de esa manera se usará solo mientras se ejecutaread
, por lo que no es necesario restaurarlo. pastebin.com/7E7C4AcRIFS
el nuevo valor persiste después de la creación de la matriz pero no después de la ejecuciónread
?Ampliando la solución de Smith John , esto lo convierte en un buen alias en su
.bash_profile
:fuente
Tenga en cuenta que una RUTA no establecida tiene un significado diferente de una RUTA vacía. Una RUTA vacía contiene un elemento vacío, y eso significa buscar ejecutables solo en el directorio actual, una RUTA no establecida significa buscar ejecutables en una lista predeterminada de directorios (pero tenga en cuenta que en algunos sistemas, no todas las herramientas están de acuerdo con el contenido de esa lista)
En
zsh
:En shells POSIX (tenga
zsh
en cuenta que incluso ensh
modo no es POSIX en ese sentido):fuente