GNU/Linux >> Linux の 問題 >  >> Linux

シェルスクリプトのPosixコンプライアンスをテストする方法は?

POSIXはすべてのユニスの共通の標準に最も近いものであることを考えると、それを排他的にサポートするシェルがあるかどうかを知りたいと思います。最新のシェルのほとんどはPOSIXのサポートを提供しますが(POSIX準拠のスクリプトを問題なく実行します)、非準拠の機能を指摘するのに適していません。

非準拠の機能に対してエラーをスローするような方法で、POSIXとPOSIXのみを実装するシェルはありますか?

編集 ポータブルシェルスクリプトを作成するための一般的なヒントを求めているのではないことを明確にしておきたいと思います。コメントで言及された関連する質問はすでにこれをカバーしました。 bashを見つけたときに、この質問について考えました。 --posixがあります オプションですが、それが私が探しているものとは正確に一致しない一部の初期化動作にのみ影響することを発見するためだけです。

承認された回答:

残念ながら、「ポータブル」は通常、シェルスクリプトの「POSIX準拠」よりも強力な要件です。つまり、POSIXシェルで実行されるものを作成することはそれほど難しくありませんが、実際のシェルで実行することはより困難です。

パッケージマネージャーにすべてのシェル、特にdebianのposhをインストールすることから始めることができます。 あなたが望むもののように聞こえます(ポリシー準拠の通常のシェル)。 DebianのポリシーはPOSIXですが、いくつかの例外があります(echo -n 指定、local …)。

それを超えて、テストはさまざまなプラットフォームでいくつかのシェル(特に/ bin / sh)をカバーする必要があります。 Solaris(/ bin/shおよびxpg4/sh)とBSDでテストします。 AIXとHP-UXは非常に準拠しており、問題は発生しません。 bashは独自の小さな世界です。

ポータブルシェルのAutoconfガイドをお勧めします。これは絶対に素晴らしく、多くの時間を節約できます。その大部分は廃止されていますが、それで問題ありません。気にしない場合は、TruUnixやUltrixなどをスキップしてください。


Linux
  1. Linux、OS X、Windows 用の Travis CI テスト パッケージの作成方法

  2. Linux はシェル スクリプトをどのように処理しますか?

  3. /etc/hosts をシェルスクリプトから変更するには?

  1. シェルスクリプトで入力を使用する方法

  2. シェルスクリプトでルート権限を削除する方法は?

  3. Unixシェルスクリプトのファイル拡張子?

  1. シェルスクリプトの変数の命名規則はありますか?

  2. ターミナルで使用しているシェルをテストする方法は?

  3. 一時的に使用するためのクリーンなシェル環境を作成するにはどうすればよいですか?