pushd/popdとsub-shell+cdの違い

pushd/popdとsub-shell+cdの違い

以下を使用すると、どのような利点があるかを理解しようとしています。

pushd my_dir
make all  # ... or something else
popd

そして

(
    cd my_dir
    make all  # ... or something else
)

それともこれは単に好みですか?

後者の表記には(他のフラグと一緒に)必要な問題があるかもしれませんが、set -eまだ最後のコマンドの終了コードを実行し、構文の面でより良く見えます。

ベストアンサー1

サブシェルでスクリプトの一部を実行することは、必ずしも可能または有用ではありません。

私もスクリプトでpushd/を使用しますpopd(私は通常スクリプトでbashismを使用しているので大丈夫です)。しかし、私が理解しているように、これは主にインタラクティブシェルの便利な機能であり、サブシェルを使用することはそれほど面白いとは思わないでください。

おすすめ記事