Bash 関数で「exit 1」ステートメントを使用してスクリプト全体を終了していましたが、正常に機能しました。
function func()
{
echo "Goodbye"
exit 1
}
echo "Function call will abort"
func
echo "This will never be printed"
しかし、次のように呼び出しても機能しないことに気付きました。
res=$(func)
サブシェルを作成し、「exit 1」がそのサブシェルを中止し、プライマリ シェルを中止しないことを理解しています....
しかし、どのように呼び出されても、実行全体を中止する関数を作成する方法はありますか? 実際の戻り値を取得する必要があるだけです (関数によってエコーされます)。