Shell
提示錯誤程式碼
目前我在zsh
!
的正確提示中如下:export RPS1="%B%F{red}!%f%b"
當我使用tmux並且命令歷史記錄沒有在其窗格中同步(不幸的是)時,這些數字對我來說幾乎沒用。
我嘗試設置
RPS1
並顯示命令的返回碼/錯誤級別?
,但沒有成功。$?
我記得我必須設置:
setopt promptbang
用於
!
被插值(解釋,擴展)。如何在命令行右側實現這樣的提示,指示上一個命令的結果錯誤號。
我目前提示的範例螢幕截圖具有
>
,>>
和!
as$PS1
,$PS2
, and$RPS1
。
為了顯示上一個命令的返回狀態,您可以使用提示符 escape
%?
。RPS1='%B%F{red}%?%f%b'
您甚至可以根據退出狀態切換顏色:
RPS1='%B%(?.%F{green}.%F{red})%?%f%b'
或者只顯示任何內容,如果命令返回錯誤:
RPS1='%(?..%?)'
%?
如果評估結果為,這會將輸出著色為綠色0
,否則為紅色。為了替換任意參數(如
$?
),您需要啟用該PROMPT_SUBST
選項:setopt promptsubst
在這種情況下,您需要充分引用參數以防止它在聲明時被替換。例如,通過使用單引號或
$
使用\
內部雙引號引用。RPS1='$?' RPS1="\$?'
順便說一句:不需要導出
RPS1
(或任何其他 shell 配置參數)即可生效。