在lash中将Ubuntu版本从lsb-releases切换为变量

时间:2016-03-01 06:47:28

标签: bash

我想从etc / lsb-releases中删除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部分保存到变量?

2 个答案:

答案 0 :(得分:1)

您可以直接在grep文件上使用lsb-release。您可以使用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

答案 1 :(得分:0)

你可以获得这些信息:

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