如何通过 .sh(bash)脚本了解系统上的 Ubuntu 版本?

如何通过 .sh(bash)脚本了解系统上的 Ubuntu 版本?

因此,我尝试创建一个 bash/可执行文件,我需要知道系统上的 Ubuntu 版本号。我在网上找到的所有方法都包括lsb_release -r,但是我无法将其输出到变量中。

有没有办法获取 Ubuntu 的当前版本并将其保存为 shell 可执行文件中的变量?

答案1

Var=$(lsb_release -r)
echo "$Var"

应该可以奏效。

对于数字部分仅添加以下内容:

NumOnly=$(cut -f2 <<< "$Var")
echo "$NumOnly"

变量lsb-release文件

/usr/bin/lsb_release是一个 Python 脚本。这是一个简短的脚本,可以很好地介绍 Python 语言。正如其他人提到的,获取版本号的更短方法是使用lsb_release -sr

/etc/lsb-release文件使用以下命令提供的相同信息来定义环境变量lsb_release -a

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"

您可以随时使用 包含这些环境变量. /etc/lsb-release。要在终端中测试,请执行以下操作:

$ . /etc/lsb-release

$ echo $DISTRIB_RELEASE
16.04

$ echo $DISTRIB_DESCRIPTION
Ubuntu 16.04.6 LTS

答案2

另一种方法是使用/etc/os-release文件。它被格式化为 shell 变量列表:

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

因此,解析它的一个简单方法就是source文件:

$ . /etc/os-release

$ echo $NAME
Ubuntu

$ echo $VERSION
18.04.2 LTS (Bionic Beaver)

$ echo $PRETTY_NAME
Ubuntu 18.04.2 LTS


$ echo $VERSION_ID
18.04

为了避免不必要地设置所有这些变量,您可以在子壳,回显你需要的变量并退出子shell:

$ ( . /etc/os-release ; echo $VERSION_ID)
18.04

或者,您也可以直接解析文件:

$ grep -oP 'VERSION_ID="\K[\d.]+' /etc/os-release 
18.04

答案3

lsb_release命令支持-s(或--short) 选项,只打印您要求的信息,而不打印说明信息类型的标题。

要获取版本号,只需运行以下命令:

lsb_release -sr

例如,在 Ubuntu 18.04 LTS 上,输出:

18.04

与方法一样WinEunuuchs2Unix 的答案,使用仍然是合理的命令替换将此输出分配给 shell 变量。假设您希望ver变量保存版本号:

ver="$(lsb_release -sr)"

使用-s,就不需要用 来解析数字了cutsedgrepawk,更复杂的形式参数扩展或诸如此类。

在这种用法中," "引号是可选的,但我一般建议引用参数扩展和别的shell 扩展除非有理由不这样做。

答案4

缩短微软 回答一点点:

distro=$(lsb_release -i |cut -f2)
echo "${distro,,}"

os_version=$(lsb_release -r |cut -f2)
echo "${os_version}"

在 Ubuntu 20.04 上,显示以下内容:

ubuntu
20.04

相关内容