シェルスクリプト(主にソフトウェア開発ユーティリティまたはビルドツール)を作成するときは常に、移植性のためにプレーンな古いshを使用することを優先して、bashの使用を避けようとしました。ただし、最近、便利な機能が利用できない、またはshが異なるシェルにエイリアスされているため、shを使用しているシステム間で動作の一貫性が実際に低いという問題が増えています...
私が理解しているように、shは最も古いUnixシェルであり、注意深く記述されたshスクリプトは、理論的にはほとんどすべてのシステムで実行されるはずです...しかし、すべての主要なシェルには約9000の異なるバリアントもあるようです。スクリプトインタープリターとしてbashを使用すると、スクリプトの移植性が効果的に制限されませんか?もちろん、OS XやほとんどのLinuxで問題はありませんが、BSDについてはどうでしょうか。Solaris、AIX、HP-UX?本当にすべてを実行したい場合はどうしますか?
bashは事実上すべてのOSにインストールできることを知っていますが、関連するすべての最新システムで本当に一級市民ですか?プリインストールされていますか?最も一貫性があり、ポータブルな全体的なエクスペリエンスを提供することを目的として、bashを回避するのが最善か、それとも採用するのが最善かはよくわかりません。