将 Ubuntu 版本从 lsb 版本削减到 bash 中的变量

  • 本文关键字:版本 bash 变量 Ubuntu lsb bash
  • 更新时间 :
  • 英文 :


我想从etc/lsb-release中删除Ubuntu版本到一个变量。我已经设法剪掉了这条线 DISTRIB_RELEASE=16.04,但只想有 16.04 而不是整行

# Get ubuntu version
file="/home/test/Desktop/lsb-release"
ubuntu_v=$(cat "$file" | grep DISTRIB_RELEASE) 
echo $ubuntu_v

我使用上面的代码剪掉了 DISTRIB_RELEASE=16.04 行,如何仅将 16.04 部分保存到变量中?

您可以直接在lsb-release文件上使用grep。您可以使用 cut 拆分输出.像这样,

$ grep DISTRIB_RELEASE /etc/lsb-release | cut -f2 -d'='

而且,为了匹配您的示例

file=/etc/lsb-release
ubuntu_v=$(grep DISTRIB_RELEASE "$file" | cut -f2 -d'=') 

或者,直接使用source并访问环境DISTRIB_RELEASE,例如

source /etc/lsb-release
echo $DISTRIB_RELEASE

然后,您可以获得所有发布变量,并且还可以

echo $DISTRIB_ID
echo $DISTRIB_CODENAME
echo $DISTRIB_DESCRIPTION

你可以尴尬地获取这些信息:

var=`awk -F '=' '{if($1 == "DISTRIB_RELEASE") print $2}' /etc/lsb-release`

最新更新