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/binEstoy 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
$pathvariable para ver su ruta con espacios en lugar de dos puntos.Que se puede combinar con
printfoprint.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
echouna tubería.fuente
echo $PATH | tr ':' '\n'pero es más clara su solución.print -l $pathguarda algunas pulsaciones de teclas. Falla si$pathcontiene barras invertidas, pero eso es muy inusual.$PATH.Aquí hay una manera rápida con
bashfuente
IFSutilizando una subshell. por ejemplo(IFS=: arr=($PATH); printf "%s\n" "${arr[@]})")/bin:/usr/bin:solía ser un valor común para$PATH)$PATHcontiene algunos caracteres comodín (poco probable)bashtodos modos, puede usarloIFS=: read -a arr <<< "$PATH"para la parte de división.IFSEl nuevo valor de esa manera se usará solo mientras se ejecutaread, por lo que no es necesario restaurarlo. pastebin.com/7E7C4AcRIFSel 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
zshen cuenta que incluso enshmodo no es POSIX en ese sentido):fuente