最佳答案
我一直在尝试定制我的 Bash 提示符,以便它看起来像
[feralin@localhost ~]$ _
还有颜色。我设法获得了常量颜色(每次看到提示时都是相同的颜色) ,但是如果最后一个命令的退出状态为非零,我希望用户名(‘ feralin’)显示为红色,而不是绿色。我想到了:
\e[1;33m[$(if [[ $? == 0 ]]; then echo "\e[0;31m"; else echo "\e[0;32m"; fi)\u\e[m@\e[1;34m\h \e[0;35m\W\e[1;33m]$ \e[m
然而,根据我的观察,当 .bashrc
运行时,$(if ...; fi)
似乎只被计算了一次,并且结果在运行之后永远被替换了。这使得名称始终是绿色的,即使最后一个退出代码是非零(如 echo $?
)。是这样吗?或者只是我的提示出了问题?长话短说 如何让提示符使用最后一个退出代码?