我目前将我的 bashPS1
设置为如下形式:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\w\n\$ "
我怎样才能让它显示绝对路径而不是相对路径(例如/home/dave/dir
而不是~/dir
)?
答案1
只需替换\w
为\$PWD
:
PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\$PWD\n\$ "
无论如何,如果你介意一点提示,我会写类似的东西:
PS1='\[`[ $? = 0 ] && X=2 || X=1; tput setaf $X`\]\h\[`tput sgr0`\]:$PWD\n\$ '
答案2
放在家里.bashrc
PS1='\u@\h:\w\$ '
答案3
运行pwd
而不是使用\W
。
简单版本:
export PS1="\`pwd\` $ "
在您的代码中使用它:
export PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\`pwd\`\n\$ "
答案4
嗯~/dir 是绝对路径,但使用“快捷方式”。例如,如果您这样做,cd /usr/local
您的提示很可能会显示 /usr/local 的完整路径。所以无论如何,您已经有了一个完整路径 :-)
但可能您的正确问题是如何在没有任何快捷方式(如~)的情况下显示完整路径?
然而,我不知道这个问题的答案,但看着那个人,似乎有一个答案(至少有记录)。