假设我需要为许多 Linux 发行版中的任何一个安装一组先决条件。在这种情况下,我需要根据发行版切换我的安装表达式。
我知道uname -v
,并且我知道我可以使用一些易碎的字符串表达式和逻辑来检查此命令的输出。但是我真正需要的是:
V=$(something-like-uname)
echo $V
"Debian"
# or
"Gentoo"
# or
"Redhat"
# or
"Arch"
# etc.
这个命令是什么?(它存在吗?)
假设我需要为许多 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 上显示:在 Raspbian 上:
您在这里感兴趣的领域可能是
ID
.我会使用:
lsb_release -i
如果安装了它,可能会做你想做的事。否则,它会检查诸如 , 等文件的/etc/redhat-release
技巧/etc/debian_version
。