Actualmente tengo mi bash PS1
configurado en algo como esto:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\w\n\$ "
¿Cómo puedo hacer que muestre la ruta absoluta en lugar de la relativa (por ejemplo, en /home/dave/dir
lugar de ~/dir
)?
/home/dave/dir
y~/dir
son ambas rutas absolutas, la segunda usa una abreviatura para su directorio de inicio. Una ruta relativa es una ruta relativa a su directorio actual (p../dir
. Ej. ) En lugar de comenzar en root (/
).\u@\H[\w]:~\$
haceuser@host[~/path]:~$
Respuestas:
Simplemente reemplace
\w
con\$PWD
:De todos modos, si te importa un pequeño consejo, escribiría algo como:
fuente
$PWD
se evalúa en el momento de la asignaciónPS1
, no en cada llamada. Sin embargo , si escapas del signo del dólar, funcionará\$PWD
. Con esto, el signo de dólar es un signo de dólar en el momento de la asignación y la evaluación variable ocurre en cada solicitud. +1 a tiPoner en su casa
.bashrc
fuente
\w
dar la ruta completa mientras\W
que solo da el directorio. Ver "Bash Prompt Escape Sequences"en la ps1 de bash; -W debería ser relativo, y -w absoluto, entonces en lo anterior ya deberías tener el absoluto.
http://wiki.archlinux.org/index.php/Color_Bash_Prompt
fuente
W
muestra solo el nombre del directorio actual,w
muestra la ruta completa, pero aún usa rutas relativas.Humm ~ / dir es una ruta absoluta pero utiliza un "atajo". Por ejemplo, si lo hace,
cd /usr/local
lo más probable es que muestre la ruta completa de / usr / local. De todos modos, ya tienes un camino completo :-)Pero probablemente su pregunta correcta es cómo mostrar la ruta completa sin atajos como ~?
Sin embargo, no sé una respuesta para esa pregunta y al mirar al hombre, parece tener una (al menos documentada).
fuente
Ejecutar en
pwd
lugar de usar\W
.Versión simple:
Usando esto en su código:
fuente