我想从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`