Linux

僅產生 linux 發行版名稱的命令

  • December 7, 2019

假設我需要為許多 Linux 發行版中的任何一個安裝一組先決條件。在這種情況下,我需要根據發行版切換我的安裝表達式。

我知道uname -v,並且我知道我可以使用一些易碎的字元串表達式和邏輯來檢查此命令的輸出。但是我真正需要的是:

V=$(something-like-uname)
echo $V

"Debian"
# or
"Gentoo"
# or
"Redhat"
# or 
"Arch"
# etc.

這個命令是什麼?(它存在嗎?)

我總是先檢查lsb_release -i,然後再檢查 /etc/os-release作為備份。它應該在許多 發行版上都可用,但你當然不能指望它無處不在。它是Freedesktop 標準 ,存在於systemd 系統上。在 Slackware 上顯示:

$ cat /etc/os-release
NAME=Slackware
VERSION="14.2"
ID=slackware
VERSION_ID=14.2
PRETTY_NAME="Slackware 14.2"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:slackware:slackware_linux:14.2"
HOME_URL="http://slackware.com/"
SUPPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"
BUG_REPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"

在 Raspbian 上:

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

您在這裡感興趣的領域可能是ID.

引用自:https://unix.stackexchange.com/questions/556095