Bash

基於先前命令輸出的顏色 PS1

  • June 12, 2013

我現在的 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}\$\
"

如果返回碼($?)在非零輸出上是紅色的,那就更好了。

我怎樣才能做到這一點?

我用這個

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 ] ||位即可。

引用自:https://unix.stackexchange.com/questions/79120