%?
Zshには、エスケープシーケンスを使用して、プロンプトに前のコマンドの戻りコード/終了コードを表示する機能が含まれています。
ただし、次のプロンプトが必要です。
user@host ~ [%?] %
終了コードが0と異なる場合および:
user@host ~ %
終了コードが0の場合。
単独で使用する%?
場合は、0であっても常に表示されます。さらに%?
、角かっこが必要ですが、終了コードが0でない場合のみです。
これを行う最も簡単な方法は何ですか?
終了コードを表示する位置にこれを追加PS1
します。
%(?..[%?] )
条件式です。最初のドットの前の式が真の場合、2つのドットの間の部分(この場合は何もありません)が出力されます。falseの場合、2番目のドットの後の部分が出力されます。
例えば:
PS1='%n%m %~ %(?..[%?] )%# '
または、次のことができます。
setopt PRINT_EXIT_VALUE
以前の戻り値を示す改行を常に出力します。
私はこれを通常の使用には好みませんが、シェルスクリプトのデバッグにはしばしば適しています。