我目前的 PS1 如下。输出$?
非常有用(第二行)。
export PS1="\
${PSOn_Blue}${PSBWhite}\t\
${PSColor_Off} \$?\
${PSColor_Off}${PSBGreen} \u\
${PSColor_Off}${PSWhite}@\
${PSColor_Off}${hostcolor}\h\
${PSColor_Off}:\
${PSBGreen}\w\
${PSColor_Off}\$\
"
如果返回码 ($?) 在非零输出上为红色,那就更好了。
我怎样才能实现这个目标?
答案1
我用这:
BOLD_FORMAT="${BOLD_FORMAT-$(color_enabled && tput bold)}"
ERROR_FORMAT="${ERROR_FORMAT-$(color_enabled && tput setaf 1)}"
RESET_FORMAT="${RESET_FORMAT-$(color_enabled && tput sgr0)}"
PS1='$(exit_code=$?; [ $exit_code -eq 0 ] || printf %s $BOLD_FORMAT $ERROR_FORMAT $exit_code $RESET_FORMAT " ")'
将其与您的其余部分连接起来$PS1
,但确保您仍然使用单引号,否则它将不起作用,您应该是黄金。如果您想显示退出代码,即使它为零,只需删除该[ $exit_code -eq 0 ] ||
位即可。
答案2
\W
这将以绿色或红色显示工作目录 ( ) 的基本名称:
PS1='\[\e[$([[ $? = 0 ]] && printf 32 || printf 31);1m\]\W\[\e[m\] '