Shell

提示錯誤程式碼

  • July 6, 2017

目前我在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 配置參數)即可生效。

引用自:https://unix.stackexchange.com/questions/375542