関数を上位範囲に戻すにはどうすればよいですか?

関数を上位範囲に戻すにはどうすればよいですか?

私を迷惑にするのは、これがreturn 0ファイルをインポートしてサブシェルを実行するときにのみ必要なことですexit 0。私は次のことができるように、コードがより高い範囲で評価される関数を作成しようとしています。

return 0 2>/dev/null
exit 0

戻り値が失敗した場合は、シャットダウンが機能し、すべてのケースをカバーするため、これはより高い範囲で最も簡単な解決策です。ただし、もちろん上位範囲にコーディングされている場合にのみ機能します。関数の範囲内の戻り値は、明らかに次から返されるからです。ただ機能。

これがどのように可能ですか?私は単純さを好みますが、この質問は不可能かもしれません

答え1

1つの解決策はこれです。スクリプトが自分のプロセスで起動されているのか、それともそのプロセスで実行されているかにかかわらず、終了コード42を使用してスクリプトを終了するとします。

return 42 || exit 42

それを試すことですreturn 42。失敗したら試してみてくださいexit 42。失敗すると予想しないでください。

関連情報