$PROMPT_COMMAND
bashには、最後に実行されたコマンドと対応する戻りコードを記録するカスタムプログラムがあります。$?
パイプ命令では十分ではないことに気づくまで、後者を幸せに使用しました。私は${PIPESTATUS[@]}
それを文書化する必要があると思いました。
残念ながら$PIPESTATUS
すでに設定されているようです後ろに呼ぶ$PROMPT_COMMAND
。お持ちですか?いたずら実行中にこの情報にアクセスするために使用できますか$PROMPT_COMMAND
?
ベストアンサー1
コマンド機能はプロンプトコマンドで変更され、PIPESTATUS
プロンプトコマンドの後にbash
保存および復元(および)PIPESTATUS
されます。参考$?
ここで予想される動作の説明があります。。
秘密は、次の場所に保存$PIPESTATUS[]
(および/または$?
)することです。最初の声明関数の値。それ以降は元の値を上書きします。
function myprompt() {
_pipestatus=( "${PIPESTATUS[@]}" )
echo "current: ${PIPESTATUS[@]}"
echo "cached : ${_pipestatus[@]}"
}
PROMPT_COMMAND=myprompt
それから:
$ true | false | true
current: 0
cached : 0 1 0
説明したのと同様の操作を行いましたが、ERR
プロンプトコマンドの代わりにトラップハンドラ機能を使用しました。