kshのバージョンを安全に入手するにはどうすればよいですか?
kshスクリプト内からkshのバージョンを安全に取得するにはどうすればよいですか? 私は次の解決策を見ました: ksh --version echo ${.sh.version} echo $KSH_VERSION そして、適切な状況を考えると、これらはそれぞれ正常に機能します。しかし、私は完璧ではないケースに関心があります。 具体的には、古いバージョンのkshを使用しているいくつかのマシンがありますが、私の目的のために、機能が大幅に不足しています。とにかく、バージョンを(プログラムで)チェックする理由は、kshバージョンが性能の低いバージョンの1つであるかどうかを確認するためです。もしそうなら、あまり素晴らしいコードではないブランチを実行したいです。 しかし、問題のあるマシンでは、シェルの無能さはバージョンのチェックにまで及びます... 試してみるとksh --version、何も表示されず、ksh!の新しいインスタンスが開きます。 私が試みるならecho ${.sh.version}、kshこれを捨てることができない構文エラーとしてこれを扱います2> /dev/null。 $ echo ${.sh.version} 2> /dev/null ksh: ${.sh.version}: bad substitution もちろんecho $KSH_VERSION正常に動作するように見えます-クラッシュしないことを意味します-これらのマシンでは空白です。また、私は見たどこかKSH_VERSIONのみで設定されているがpdksh。 質問: kshプログラムでバージョンを安全に確認するにはどうすればよいですか?ここでの目的のために、実際のバージョン番号が何であるかは気にしませんksh。それがの古いバージョンであるかどうかだけです。 で$KSH_VERSION十分に良いですか?空白の場合、ksh必然的に古いバージョンですか?他のフォーラムは正しいのkshですか? これを確認する方法はまったくありませんか?