如何使用shell脚本查找Linux Distribution名称?

Pra*_*til 4 regex linux bash shell operating-system

我正在编写一个shell脚本,其中我需要当前的操作系统名称以使其通用.喜欢:

if [ $Operating_System == "CentOS" ]
then
    echo "CentOS";
    # Do this
elif [ $Operating_System == "Ubuntu" ]
then
    echo "Ubuntu";
    # Do that
else
    echo "Unsupported Operating System";
fi
Run Code Online (Sandbox Code Playgroud)

怎么可能?在lsb_release -a命令或其他东西上应用正则表达式?

谢谢..

Ign*_*ams 7

$ lsb_release -i
Distributor ID: Fedora
$ lsb_release -i | cut -f 2-
Fedora
Run Code Online (Sandbox Code Playgroud)

  • 或者`lsb_release -is` (4认同)
  • 但是,`lsb_release`在centos 7上不存在. (2认同)

Jah*_*hid 5

您可以从lsb_release以下位置获取信息:

echo "$(lsb_release -is)"
Run Code Online (Sandbox Code Playgroud)

i 代表经销商ID.

s 代表简称.

对于前者 它显示Ubuntu而不是Distributor Id: Ubuntu

还有其他选择:

-r:发布

-d:说明

-c:代号

-a:全部

您可以通过运行lsb_release --help或获取此信息man lsb_release