如何在 Bash 脚本中获取当前 Debian/Ubuntu 版本名称

如何在 Bash 脚本中获取当前 Debian/Ubuntu 版本名称

如何在 Bash 脚本中获取当前 Debian 或 Ubuntu 版本的简单小写名称,例如 stretch、jessie、xenial、artful?

答案1

它在 中可用/etc/os-release,但是 Ubuntu 和 Debian 之间不一致。文档关于如何使用它并没有十分具体。

. /etc/os-release
NAME=$VERSION_CODENAME
if [ -z "$NAME" ]; then
    NAME=$(echo $VERSION | sed -rn 's|.+\((.+)\).+|\1|p')
fi

它也可以在命令中使用lsb_release,安装后无需解析:

NAME=$(lsb_release --codename --short)

最后,经过一些繁重的解析就可以直接从源文件中获取它。

NAME=$(sed -rn 's|^deb\s+\S+\s+(\w+)\s+main.*$|\1|p' /etc/apt/sources.list | head -n 1)

相关内容