Bashスクリプトには次のものがあります。
(
set -o pipefail
echo "foobar" | bash
set +o pipefail
)
パイプライン障害設定をリセットする必要がありますか、またはその行を省略できますか?つまり、サブシェルのパイプ障害設定が親シェルに影響しますか?
したがって、これは次のように仮定することを意味します。
(
set -o pipefail
echo "foobar" | bash
)
上記の内容と本当に違いませんか?
ベストアンサー1
引用するマニュアルページ:
サブシェル環境への変更は、シェルの実行環境には影響しません。
ケースを簡単にテストできます。
$ set +o pipefail
$ (set -o pipefail)
$ shopt -o pipefail
pipefail off