Fishプロンプトの$statusは常に0を出力します

Fishプロンプトの$statusは常に0を出力します

$statusfish シェルでプロンプトに追加しようとしましたが、常に 0 が出力されます。

この質問はしばらく前に IRC で尋ねられたのですが、ここに回答がなかったことに驚いたので、ここにも投稿しようと思いました。

答え1

これは、プロンプト内から呼び出す関数/コマンドによって値がリセットされるためです。これを機能させるには、fish_prompt または fish_right_prompt 関数で最初に行うこととして、値を別の変数に割り当てます。

function fish_prompt  --description 'Write out the prompt'
     set -l _display_status $status

     ...

     printf '%s' $_display_status
end

関連情報