とりあえずコード
if[[-f /etc/os-release ]];then
source /usr/lib/os-release
case$IDin
debian )echo"Debian";;
ubuntu )echo"Ubuntu";;arch)echo"ArchLinux";;
rhel )echo"Red Hat Enterprise Linux";;
centos ) echp "CentOS";;
fedora )echo"Fedora";;
opensuse )echo"OpenSUSE";;*)echo"Other";;esacelse
echo"/etc/os-release is not exist."fi
解説
ほとんどのLinuxディストリビューションには/etc/os-release
というディストリビューションごとの内容を表示したファイルがあります。
これをsourceで読み込み、IDという変数に「〜〜系」のディストリビューションというのが載っています。
この部分のIDをcaseで分けています。
IDという変数を変えることで様々な分類分けができます。
よくある値
今回はDebianを例に見ていきます。
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
PRETTY_NAME
ディストリビューションの固有名です。
バージョンやコードネームなど一般向けの正式名です。
スクリプトではあまり使用しないですね。(パターンが多すぎるため)
NAME
ディストリビューションの総称です。バージョン名は含まれていない場合が多いです。
スクリプトで使うのはIDやID_LIKE、VERSION_IDくらいですかね。
VERSION_ID
バージョン情報です。コードネームなどは無く、数字だけの場合が多いです。
VERSION
コードネームなども含めたバージョン情報です。
ID
ディストリビューションのIDです。NAMEと似たようなものですが、スクリプト向けに簡略化されています。
ID_LIKE
Debianにはありませんが他の殆どのディストリビューションにあります。
互換性のあるディストリビューションや大本のディストリビューションのIDが書かれています。
例:ManjaroではID_LINE=arch、UbuntuではID_LIKE=Debianなど
HOME_URL
ディストリビューションの公式サイトです。
SUPPORT_URL
サポートページのURLです。フォーラムなどへのリンクの場合もあります。
BUG_REPORT_URL
バグレポートページへのURLです。フォーラムなどへのリンクの場合もあります。
参考記事
Linuxのバージョンの確認方法
各ディストリビューションのos-releaseの値が書いてあったので助かりました。