Mon bash PS1
est actuellement réglé sur quelque chose comme ceci:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\w\n\$ "
Comment puis-je lui faire afficher le chemin absolu au lieu du chemin relatif (par exemple /home/dave/dir
au lieu de ~/dir
)?
Il suffit de remplacer \w
par la variable d'environnement PWD
:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\$PWD\n\$ "
Quoi qu'il en soit, si vous avez un petit conseil, j'écrirais quelque chose comme:
PS1='\[`[ $? = 0 ] && X=2 || X=1; tput setaf $X`\]\h\[`tput sgr0`\]:$PWD\n\$ '
Mettez dans votre maison .bashrc
PS1='\u@\h:\w\$ '
Humm ~/dir est un chemin absolu mais utilise un "raccourci". Par exemple, si vous faites cd /usr/local
, votre invite affichera probablement le chemin complet de/usr/local. Donc de toute façon, vous avez déjà un chemin complet :-)
Mais probablement votre bonne question est de savoir comment afficher le chemin complet sans aucun raccourci, comme ~?
Cependant, je ne connais pas de réponse à cette question et, en regardant l'homme, il semble en avoir une (du moins documentée).
Exécutez pwd
au lieu d'utiliser \W
.
Version simple:
export PS1="\`pwd\` $ "
En utilisant ceci dans votre code:
export PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\`pwd\`\n\$ "
dans ps1 de bash; -W devrait être relatif, et -w absolu, donc dans ce qui précède, vous devriez déjà avoir l'absolu?!