'lsb_release -a'在bash脚本中使用它时会打印一行

时间:2014-02-13 13:21:40

标签: bash shell lsb

我正在编写一个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'中的某个变量中,就会打印这一行。

2 个答案:

答案 0 :(得分:3)

  

事实上,只要我尝试将某些内容存储在一个内容中,就会打印出这一行   来自命令lsb_release -a

的变量

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

ubuntu_ver=$(lsb_release -a 2>/dev/null | grep Description | cut -d":" -f2)

答案 1 :(得分:2)

-a包含-v,它返回lsb模块的列表,这就是为什么你得到的信息都没有找到。

另外我建议只要求说明(-d)并省略标题(-s):

ubuntu_ver=$(lsb_release -ds)
echo $ubuntu_ver