失敗した場合は、シェルから前のコマンドの終了コードを印刷したいと思います。そのため、PS1
変数を次のように変更しました。/etc/bash.bashrc
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w [$?] \$ '
#_______________________________________________^^^^_____
ただし、常に前のコマンドの終了コードを印刷します。$?
等しい場合、0
印刷されないようにテンプレートに条件を追加する方法はありますか?$?
ベストアンサー1
次のように内部的に条件と式を作成できます$()
。
echo "$( var=2; echo $var)"
あなたの例では、PS1
次のように変数を変更できます。
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w $(
status=$?; (( status != 0 )) && echo "[$status] "
)\$ '
良い:
jackman@b7q9bw1:~ $ echo hello
hello
jackman@b7q9bw1:~ $ sh -c 'exit 42'
jackman@b7q9bw1:~ [42] $