Linux
僅產生 linux 發行版名稱的命令
假設我需要為許多 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
.