0

標準の出力/エラーと戻り値をキャプチャするという 2 つのことを処理するスクリプトをソースします。私はプロセス置換を使用しています:

ロガー.sh

exec > >(
 cat
 echo $?
) 2>&1

test.sh

. ./logger.sh
ls abc

私は abc というファイルを持っていないので、これが戻りコードの1(からの)値をエコーすることを確認したいと思います。echo $?これはプロセス置換では決して機能しないことを読んでいます。これを名前付きパイプに変換できますか? これは機能しますか?

次のように実行します。

bash ./test.sh
4

1 に答える 1

0

これを試してください:

#!/bin/bash

trap 'echo "DEBUG[$?]" | tee /tmp/log' ERR

xxxx # a non existent command

すでに がある場合は、次のtrap操作を実行できます。

#!/bin/bash

trap 'echo "DEBUG[$?]" | tee /tmp/log; do_something_else' ERR 0 1 2 3 15

xxxx # a non existent command
于 2013-02-28T19:45:58.567 に答える