私はコンピュータをRed Hat Enterprise Linux 5からRHEL 6にゆっくり切り替える環境で働いています。
現在、RHEL5 システムで実行する作業とは若干異なる操作を RHEL6 システムで実行するには、いくつかのスクリプトが必要です。
実用的な解決策は、実行時に確認し、RHEL5でいくつかのコマンドを実行し、RHEL6でいくつかのコマンドを実行し、両方でいくつかのコマンドを実行することです。
実際の例は、環境モジュールを使用していて.bashrc
1行を含んでいましたが、module load git
RHEL6システムではこのコマンドにエラーが発生することです。
RHEL6 system, git should be installed - not loading module
モジュールファイルを見てみると、次のコードが見つかりました。
set redhatrelease [eval exec "cat /etc/redhat-release"]
if { [regexp -nocase {release 6} $redhatrelease] } {
puts stderr "\n\t RHEL6 system, git should be installed - not loading module\n"
} else {
...
}
これは私の要件に合うようですが、もっと短くしたいと思います。
それでは、bashスクリプトでRHEL5とRHEL6を区別する最も簡単な方法は何ですか?
理想的には、メジャーバージョン全体で強力でなければなりませんが、マイナーバージョン番号の変更を許可する必要があります。
ベストアンサー1
if grep -q -i "release 6" /etc/redhat-release
then
echo "running RHEL 6.x"
fi
これが私が考えることができる最も簡単な方法です。