18

予期しない入力で、エラーをログに記録するエラー ログ子スクリプトを呼び出す Bash 親スクリプトがあります。また、エラーが発生してエラー スクリプトが呼び出されたときに実行を停止したいと考えています。しかし、エラー処理スクリプトから呼び出しexitても、親スクリプトの実行は停止しません。親スクリプトを子から停止するにはどうすればよいですか?

4

5 に答える 5

15

試す..

#normal flow
[[ $(check_error_condition) ]] && /some/error_reporter.sh || exit 1

それで、

  • error_reporter が終了ステータス > 0 で終了すると、親も終了します
  • error_reporter が status = 0 で終了する場合、親は続行します...

あなたは望んでいませんstop the parent from a child通常、両親はこの行動を好まない):)、あなたは代わりに望んtell to parent - need stopでおり、彼は(必要に応じて)停止します;)

于 2013-04-25T12:58:49.677 に答える
0

子から親を終了しようとしないでください。代わりexitに、子スクリプトが返された後に親を呼び出します。

if [ condition ]; then
  /path/to/child.sh
  exit 1
fi

またはそれより短い

[ condition ] && { /path/to/child.sh; exit 1; }
于 2013-04-25T12:57:15.800 に答える