2

我正在编写一个 bash 脚本,它有一个打印系统正在运行的 Ubuntu 名称的子任务。我做了:

ubuntu_ver=$(lsb_release -a | grep Description | cut -d":" -f2)
echo $ubuntu_ver

Ubuntu 12.04 LTS 存储在变量ubuntu_ver中,但顶部打印了附加行。输出是:

No LSB modules are available.
Ubuntu 12.04.4 LTS

如何防止打印“无 LSB 模块...”?
实际上,每当我尝试通过命令“lsb_release -a”将某些内容存储在变量中时,都会打印出这一行。

4

2 回答 2

3

实际上,每当我尝试从命令中将某些内容存储在变量中时,都会打印此行lsb_release -a

这表明违规行实际上是一条错误消息。丢弃它:

ubuntu_ver=$(lsb_release -a 2>/dev/null | grep Description | cut -d":" -f2)
于 2014-02-13T13:24:16.697 回答
2

-a包括-v它返回一个 lsb 模块列表,这就是为什么你会得到没有找到的消息。

另外我建议只询问描述(-d)并省略标题(-s):

ubuntu_ver=$(lsb_release -ds)
echo $ubuntu_ver
于 2014-02-13T13:31:25.290 回答