如何在 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)