2016-03-01 18 views
1

我想將etc/lsb-releases中的Ubuntu版本剪切爲變量。 我已成功地切斷這條線DISTRIB_RELEASE = 16.04,但想只有16.04,而不是整條生產線將Ubuntu版本從lsb-releases切換到bash中的變量

# 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部分到一個變量?

+0

你爲什麼不源文件'的/ etc/OS-release'呢?看到這篇文章:http://askubuntu.com/questions/450298/how-to-get-ubuntu-distributions-full-code-name/450520#450520 –

回答

1

您可以直接在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 
0

你可以awk來獲取信息:

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