kshでカスタムの偽の信号を実装する方法はありますか?現在、ERR信号をキャプチャして終了しています。ただし、変更により、成功を返さない可能性のある呼び出しがありますが、それは有効な条件です。このような場合、この呼び出しが別の信号を生成するか、ERRを別の方法で処理することを確認したいと思います。それを行う方法はありますか?
質問する
2708 次
2 に答える
2
kill
現在のシェルに必要な信号を送信するために使用できます。exit
サブシェルまたは関数で使用して、return
必要なエラー コードを設定できます。
このスクリプトを試してください:
#!/bin/ksh
trap 'echo USR1 signal processed' USR1
trap 'echo ERR signal processed' ERR
[[ $1 == a ]] && kill -s USR1 $$ || (exit 1)
echo "done"
例:
$ ./testsignal
ERR signal processed
done
$ ./testsignal a
USR1 signal processed
done
于 2010-12-17T01:02:19.207 に答える
0
おそらく、特別に処理したい終了コードを持つステートメントを、単に必要なことを実行する構造でラップするだけで済みます (「or」または「if not」構造を使用し、終了コードを分析します)。
これは、はるかにクリーンなプログラミング スタイルのように思えますね。
于 2010-12-16T22:13:51.937 に答える