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などをスキップしてください。