0

KSH で、EXIT シグナルをトラップし、スクリプトの終了コードを取得するにはどうすればよいですか?

以下のテストは、「リターン コード 0 でスクリプトを終了しようとしています」を出力します。代わりに、exit コマンドのリターン コードから 4 を出力するようにしたいと思います。

#!/usr/bin/ksh

trapped_exit() {
 typeset rc=$1

 echo "(LOG SCRIPT EXECUTION & RETURN CODE)"

 echo "About to exit script with return code $rc."
}

trap 'APP_RC=$?; trapped_exit $APP_RC' EXIT

exit 4
4

1 に答える 1

0

exit コマンドを自分の関数にエイリアスできると思います。この関数では、以前に定義されたグローバル変数と比較して、終了コマンドが子プロセスではなくプロセス ID から呼び出されたことを確認します。PID からのものである場合は、クリーンアップ コードを実行します。最後に、同じ引数で実際の終了コマンドを呼び出します。

于 2012-05-08T22:14:51.840 に答える