シェルスクリプトで「BASH-isms」を防ぐ

シェルスクリプトで「BASH-isms」を防ぐ

同様のツールがありますか?パール::批評家シェルスクリプトを調べて、バグ、移植性の問題、無置換の非標準プログラムの使用、廃止されたプログラムの使用などを指摘していますか?

これはPOSIX以外の使用を無効にすることを知っていますが、set -o posixzshは1から始まるシェル配列のインデックスを作成し、bashは0からインデックスを開始し、ashは配列をまったくサポートしていないというように私が知りたいことを教えてくれません.

答え1

持つ中断注意。 Debian では、次のように使用できます。パッケージメンテナンスツール

以下のスクリプトをテストしてください。スプリントそして贅沢。どちらもPOSIX以外の設定を持っていますが、スクリプトが両方で動作する場合、おそらくほとんどの場所で動作します。 (一般的なシェルスクリプトをテストすることは極端なケースが多いため難しいことに注意してください。)

スクリプトを組み込みLinuxプラットフォームに移植する場合は、次のコマンドを使用してテストします。忙しい箱。 BusyBoxは、組み込みシステムのサイズによってある程度制限されることがあります。スクリプトがBusyBoxインストールで利用できない特定の機能に依存するのは一般的です。

非移植性は、シェルでのみ発生するのではなく、外部ユーティリティでも発生します。 OpenBSDとSolarisは、ユーティリティにPOSIX機能のみを提供する傾向があるため、移植性テストに最適です。

あなたは参照が必要ですPOSIX仕様そしてここで言及されている他のリソースこのスレッド(特に自動構成マニュアル);ただし、これは単なる文書なので、誤って機能を使用した場合は役に立ちません。

関連情報