อีกทางเลือกหนึ่งคือการใช้/etc/os-release
ไฟล์แทน นี่เป็นรูปแบบของรายการตัวแปรเชลล์:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
ดังนั้นวิธีที่ง่ายในการแยกมันเป็นเพียงsource
ไฟล์:
$ . /etc/os-release
$ echo $NAME
Ubuntu
$ echo $VERSION
18.04.2 LTS (Bionic Beaver)
$ echo $PRETTY_NAME
Ubuntu 18.04.2 LTS
$ echo $VERSION_ID
18.04
เพื่อหลีกเลี่ยงการตั้งค่าตัวแปรทั้งหมดเหล่านี้โดยไม่จำเป็นคุณสามารถระบุไฟล์ในsubshell , echo ตัวแปรที่คุณต้องการและออกจาก subshell:
$ ( . /etc/os-release ; echo $VERSION_ID)
18.04
หรือคุณสามารถแยกวิเคราะห์ไฟล์ได้โดยตรง:
$ grep -oP 'VERSION_ID="\K[\d.]+' /etc/os-release
18.04