bashスクリプトとシェルスクリプトの違いは何ですか

bashスクリプトとシェルスクリプトの違いは何ですか

さまざまな種類のシェルがあるので、bashとシェルスクリプトの違いは何ですか?すべてのUnixシェルで実行される互換性のあるスクリプトを書くことは可能ですか?

ベストアンサー1

スクリプトbashはBourne-Again SHellによって解釈されるスクリプトなので、シェルスクリプトです。他のシェルでは正常に実行される場合と実行されない場合があります。特定の構文を使用すると、他のbashシェルでも機能するかどうかはわかりません。

すべてのシェルで解釈できるスクリプトを作成するには、POSIX標準で説明されている構文を使用する必要があります。シェルコマンド言語。当然じゃないみんなシェルはPOSIX標準に準拠していますが、これが最善の方法です。これらのスクリプトは非常に移植性があり、多くのLinuxおよび* nixシステムでエラーなしで同じ方法で実行できます。


多くのシェルおよびコマンドラインツールは、という名前の環境変数を探します$POSIXLY_CORRECT。設定されている場合、これらのツールはPOSIX互換ツールのように動作します。

もう一つの試みは--posixフラグです。たとえば、GNUにはすべてのGNU拡張を無効にし、posixのように動作するsedフラグがあります。--posixsedsed

bashサポート--posix$POSIXLY_CORRECT変数。


このようにスクリプトを作成し、posix互換シェルを使用してテストすると、最高の場所にあります。

おすすめ記事