現在私のPS1は次のとおりです。出力は$?
非常に便利です(2行目)。
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\] '