所以我试图创建一个bash / executable,它需要知道系统上Ubuntu的版本号。我在网上找到的所有方式都由组成lsb_release -r
,但是我无法将其输出到变量中。
有什么方法可以获取当前版本的Ubuntu并将其另存为Shell可执行文件中的变量?
所以我试图创建一个bash / executable,它需要知道系统上Ubuntu的版本号。我在网上找到的所有方式都由组成lsb_release -r
,但是我无法将其输出到变量中。
有什么方法可以获取当前版本的Ubuntu并将其另存为Shell可执行文件中的变量?
Answers:
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
Release: 18.04
。但是,有什么方法可以获取电话号码吗?我希望能够在脚本的if / else函数中使用此变量。if / else的目的是为ubuntu发行版下载我的应用程序的正确版本。
替代方法是使用/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
为了避免不必要地设置所有这些变量,可以在subshell中提供文件,回显所需的变量,然后退出subshell:
$ ( . /etc/os-release ; echo $VERSION_ID)
18.04
另外,您始终可以直接直接解析文件:
$ grep -oP 'VERSION_ID="\K[\d.]+' /etc/os-release
18.04
该lsb_release
命令支持-s
(或--short
)选项,仅打印您要查询的信息,而不打印表明是哪种信息的标题。
仅获取版本号即可运行:
lsb_release -sr
例如,在Ubuntu 18.04 LTS上,输出:
18.04
与WinEunuuchs2Unix的答案中的方法一样,使用命令替换将此输出分配给Shell变量仍然是合理的。假设您希望该ver
变量保存发布号:
ver="$(lsb_release -sr)"