私はMacを使用しており、入力したすべてのコマンドに対して絵文字Xを表示し、コマンドが失敗するたびに絵文字Yを表示したいと思います。
答え1
Bashにはプロンプトを制御するためのいくつかの変数があります。
PROMPT_COMMAND
PS1
PS2
PS3
PS4
この特定のシナリオでは、PROMPT_COMMAND
(デフォルトのプロンプトを印刷する前に実行されたコード)とPS1
(デフォルトのプロンプト)ヘルプのみがあります。
この変数を使用する?
と、最後に実行されたコマンドの終了ステータスを知ることができます。たとえば、
command
if [[ "${?}" == '0' ]]; then
echo 'OK'
else
echo 'ERROR'
fi
したがって、次のような便利な機能を活用するだけです。
# Using PROMPT_COMMAND
PROMPT_COMMAND='if [[ "${?}" == "0" ]]; then printf "[OK]"; else printf "[ERROR]"; fi'
# Using PS1
PS1='$(if [[ "${?}" == "0" ]]; then printf "[OK]"; else printf "[ERROR]"; fi)\$ '
どちらの方法も次のように印刷されます(初期プロンプトがあると仮定$
)。
[OK]$ false
[ERROR]$ true
[OK]$
お好みの絵文字とを[OK]
交換してください。[ERROR]
あなたは読むことができます制御プロンプトこのトピックの詳細については、Bashマニュアルのセクションを参照してください。