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
ただし、私の観察では$(if ...; fi)
、 が実行されたときに が一度評価され.bashrc
、結果がその後永久に置き換えられるようです。これにより、最後の終了コードがゼロ以外の場合でも、名前は常に緑色になります (のようにecho $?
)。これは何が起こっているのですか?それとも、単に私のプロンプトに何か問題がありますか? 短い質問ですが、最後の終了コードを使用するようにプロンプトを表示するにはどうすればよいですか?