POSIX準拠のためにシェルスクリプトをテストする方法は?

POSIX準拠のためにシェルスクリプトをテストする方法は?

POSIXがすべてのユニックスの普遍的な標準に最も近いものであることを考えると、それをサポートする専用シェルがあるかどうかを知りたいです。ほとんどの最新のシェルはPOSIXのサポートを提供し(問題なくPOSIX互換スクリプトを実行できます)、互換性のない機能を正しく指摘していません。

互換性のない機能に対してエラーが発生するようにPOSIXとPOSIXのみを実装するシェルはありますか?

編集する私は移植可能なシェルスクリプトを書くための一般的なヒントを必要としないことを明らかにしたいと思います。コメントに記載されている関連質問はすでにこの内容をカバーしています。私はオプションbashがあることを知ったときにこの問題を思い出しましたが、--posixそれがまさに私が望むものではなく、いくつかの初期化動作にのみ影響することに気づきました。

ベストアンサー1

あなたはそれを使用することができますシェルチェック(GitHub)シェルスクリプト用のリンターとして使用されます。まだ一つあります。オンライン版

POSIX互換性の問題の検出(例:SC2039)、これシェルボーンラインシェルスクリプトは#!/bin/sh--shell=shshellcheck

はい( test.sh):

#!/bin/sh
if [[ $HOSTNAME == test ]]; then
    echo fail &> foo
fi

結果( shellcheck test.sh):

In test.sh line 2:
if [[ $HOSTNAME == test ]]; then
   ^-- SC2039: In POSIX sh, [[ ]] is undefined.
      ^-- SC2039: In POSIX sh, HOSTNAME is undefined.    

In test.sh line 3:
    echo fail &> foo
              ^-- SC2039: In POSIX sh, &> is undefined.

おすすめ記事