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