シェルスクリプトがbashまたはshのどちらで記述されているかを確認する方法


8

スクリプトが記述されているかどうかを確認するにはどうすればbashよいshですか?

Linuxではbashスクリプトに次の行があるため、スクリプトの最初の行はここでは役に立ちません。 #!bin/sh

実際には、Bourne Shellではなく、/bin/shbash(おそらくこれらのディストリビューション/bin/shへのリンク/bin/bash)である多くのディストリビューションがあります。したがって、FreeBSDなどでbashで記述されたスクリプトを実行しようとすると、結果は定義されません。これ/bin/shは、FreeBSDではBourne Shellであり、bashではないためです。

スクリプトがbashかshかを識別する簡単な方法はありますか?

構文に特徴的な点はありますか?


3
グレッグのWikiでバシズムを参照してください...
jasonwryan

回答:


15

実際シェバングライン手段は、Debianのようないくつかのディストリビューションでは使用しないように何かbashのために/bin/shけどdash

シェルスクリプトがbashかどうかを判断する最も簡単な解決策は、使用することですcheckbashism-詳細man checkbashismsについては、を参照してください。

checkbashisms異なるディストリビューションでパッケージ化する必要がありdevscriptsます。Debianの場合は、パッケージdevscripts-minimalに含まれていますrpmdevtools-Fedora in(以前はであった)とOpenSuSe inrpmlint-mini

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.