Bashの独立サブシェル

Bashの独立サブシェル

Bashスクリプトから完全に分離されたサブシェルを呼び出す方法はありますか?私は、呼び出されるサブシェルには親シェルから継承された変数がないことです。これが本質的に私が達成したいものです。

ベストアンサー1

env -i "$BASH" -c 'your code here'

bash最初は空の環境で解釈するために新しい通訳が始まります。your code here

新しいインスタンスなので、bashエイリアス、位置パラメータ、エクスポートされていない変数、関数を継承しません。

env -iエクスポートされた変数と関数(呼び出しによって定義されたり、bash以前から継承されたり)も、それを使用して継承されません。

umaskclose-on-execフラグなしで開かれたファイル記述子、制限、およびいくつかのシグナル構成(たとえば、trap '' INT呼び出し元のaもSIGINTを無視する)など、フォークおよびコマンドの実行全体にわたって保持される他の種類の属性を継承し続けます。 )呼び出し受信者から)。

おすすめ記事