スクリプトがbash
またはで書かれているかどうかを確認するにはsh
?
Linuxでは、bashスクリプトに次の行があるため、スクリプトの最初の行はここでは役に立ちません。
#!bin/sh
実際、Bourne Shellではない/bin/sh
bash(おそらく/bin/sh
そのディストリビューションへのリンク)であるディストリビューションがたくさんあります。/bin/bash
したがって、FreeBSDでbashで書かれたスクリプトを実行しようとすると、結果は定義されません。 FreeBSD/bin/sh
ではbashではなくBourne Shellだからです。
スクリプトがbashかshかを識別する簡単な方法はありますか?
文法に特異な点はありますか?
答え1
実際、shebang行の意味は、一部のディストリビューション(Debianなど)ではbash
but 。/bin/sh
dash
シェルスクリプトがbashであることを確認する最も簡単な解決策は、次のものを使用することです。checkbashism
- バラよりman checkbashisms
もっと学ぶ。
checkbashisms
devscripts
別のディストリビューションにパッケージする必要があります。 Debianの場合、Fedora devscripts-minimal
(以前のrpmdevtools
)とOpenSuSeパッケージにあります。rpmlint-mini