3
サブシェルにいるかどうかを検出するにはどうすればよいですか?
exitビルトインの機能を置き換える関数を作成して、端末を終了できないようにしています。 SHLVL環境変数を使用しようとしましたが、サブシェル内では変更されないようです: $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash -c 'echo $SHLVL' 2 私の機能は次のとおりです。 exit () { if [[ $SHLVL -eq 1 ]]; then printf '%s\n' "Nice try!" >&2 else command exit fi } exitただし、これによりサブシェル内で使用することはできません: $ exit Nice try! $ (exit) Nice try! 私がサブシェルにいるかどうかを検出する良い方法は何ですか?