私は、bashスクリプトと他のツールで構築されたいくつかのシステムを扱っています。 -e、-u、-o pipefailオプションを使用してエラー状態を捕捉し、予期しない動作を防止することをお勧めします。どのように現在のオプションをbashに問い合わせることができますか?
しかし、私がソースを変更できるサードパーティのライブラリの中には、これをしないものがあり、変数テストを-uで変更することに満足できていません。
これらのスクリプトは実行されていないと考えられます。だから私がしたいことは、これらのいくつかにあります。より受け入れやすいオプションを設定し、厳しいものを復元します。問題のスクリプトも同じ問題が発生しているいくつかの人の多くのユーザーによって使用されているので、私はサードパーティのスクリプトにこの変更を配置したいと思いますが、すなわち:私は維持する方法を探しています
<preserve original options>
set +e +u +o pipefail
#do stuff like
if [ -n "$_UNSET_VAR" ] ; then
cp <some stuff> <some other stuff>
fi
<restore original options (whatever they were)>
とこれらのオリジナルを復元します。
優れています。それはうまくいく - https://github.com/dannystaple/virtualenv/commit/a220ed9cca154cff5a04caf957f619dd61d1e15b。 –