この記事では、CentOSのバージョンをユーザに入力してもらっていたのだが、そこも自動化するためにシェルスクリプト内でバージョンの判定できないかな?と思ったのだが、ちょっと躓いたので共有もかねてまとめる。
CentOSのバージョン情報を確認する
「CentOS バージョン 確認」でググると「redhat-releaseをcatしてね」ってでてくる。
しかし、自動化する上でちょっとだけ障壁がある。
# CentOS 6.x系
$ cat /etc/redhat-release
CentOS release 6.8 (Final)
# CentOS 7.x系
$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
$ cat /etx/redhat-release | awk '{ print $3 }' # CentOS 6.x系 6.7 # CentOS 7.x系 release
6系と比較し7系では「Linux」という文字列が表示されてしまうため、単純に「スペースで区切った3つ目のフィールド」という指定ができない。
CentOS のバージョン情報を取得する
バージョンを取得するために正規表現を使用し、数値(バージョン)の部分だけ取得することでバージョンの差異を気にしなくてすむ。
$ cat /etc/redhat-release | sed -e 's/.*\s\([0-9]\)\..*/\1/'
# CentOS 6.x系
6
# CentOS 7.x系
7
sedコマンドで「任意の文字列<スペース>(数値).任意の文字列」で数値のところだけキャプチャしている。この例ではメジャーバージョンだけを取得している。
以上
written by @bc_rikko
0 件のコメント :
コメントを投稿