43

%?Zshには、エスケープシーケンスを使用して、プロンプトに前のコマンドの戻りコード/終了コードを表示する機能が含まれています。

ただし、次のプロンプトが必要です。

user@host ~ [%?] %

終了コードが0と異なる場合および:

user@host ~ %

終了コードが0の場合。

単独で使用する%?場合は、0であっても常に表示されます。さらに%?、角かっこが必要ですが、終了コードが0でない場合のみです。

これを行う最も簡単な方法は何ですか?

4

2 に答える 2

67

終了コードを表示する位置にこれを追加PS1します。

%(?..[%?] )

条件式です。最初のドットの前の式が真の場合、2つのドットの間の部分(この場合は何もありません)が出力されます。falseの場合、2番目のドットの後の部分が出力されます。

例えば:

PS1='%n%m %~ %(?..[%?] )%# '
于 2010-12-17T01:30:57.110 に答える
18

または、次のことができます。

setopt PRINT_EXIT_VALUE

以前の戻り値を示す改行を常に出力します。

私はこれを通常の使用には好みませんが、シェルスクリプトのデバッグにはしばしば適しています。

于 2012-10-26T19:55:11.817 に答える