プロンプトに返品ステータスを含めたいです。 (追加しやすいです'$? '
か?)
しかし、私はゼロ以外の状態(および末尾の空白)だけを返したいと思います。
例:
sd ~ $ false
1 sd ~ $ true
sd ~ $
答え1
このオプションがオンになっていることを確認してくださいpromptvars
(デフォルト)。次に、必要なコードを入力して、PROMPT_COMMAND
プロンプトに必要な内容を含む変数を定義します。
PROMPT_COMMAND='prompt_status="$? "; if [[ $prompt_status == "0 " ]]; then prompt_status=; fi'
PS1='$prompt_status\h \w \$ '
zsh では条件付き構成を使用できますPS1
(bash には該当しません)。
PS1='%(?,,%? )%m %~ %# '
答え2
使用する必要はありませんPROMPT_COMMAND
。ここでは不要な問題が発生します。あなたがしなければならないのは、この関数を定義することだけです:
prompt_status()
{
[ $? = 0 ] && return
echo -n "${?} "
}
その後、PS1を次のように設定します。
shopt -s promptvars
PS1='$(prompt_status)'$PS1
prompt_status()
内部サブシェルの評価は$?
変更から保護されます。
答え3
私が持つことができる最高のものはそれを通してです
PS1='${?/#0/}'":$PS1"
区切り文字としてaを追加した:
ため、質問の内容が正しくありません。