シェルバージョンを実行するPOSIX互換/クロスシェル方法は何ですか?

シェルバージョンを実行するPOSIX互換/クロスシェル方法は何ですか?

実行中のシェルのバージョン番号を取得するためにすべてのシェルで動作するPOSIX互換の方法または方法はありますか?

操作できるように名前/バイナリをインポートできますが、非常に単純なシェル(Travis-CI / Ubuntu Trustyでテスト済み)でも機能しません。$SHELL ps -p$$ -ocmd=$SHELL --version $(ps -p$$ -ocmd=) --versionsh

ほとんどのシェルに機能する方法はありますか(たとえば、caseシェルを区別する必要がある場合)。

編集する:これは、情報提供の目的でのみ使用されるシェルバージョンを印刷するために使用されます。はいいいえ戻り値で操作を実行するには、その値をユーザーに表示するだけです。

ベストアンサー1

--version定義されたフラグはありません。shユーティリティ用POSIX規格。どのようなバージョン情報も含む標準環境やシェル変数はありません。これはシェルが不均一であることを意味します。必要そのバージョンを利用可能にしてください。

特定のバージョンのシェルをテストする必要がある場合、スクリプトはPOSIXと互換性がない可能性が高いため、質問は関係ありません。

kshシェルについては、以下を参照してください。kshバージョンを安全に入手するには?

また関連:端末で使用しているシェルをどのようにテストしますか?

おすすめ記事