返回变量中Ubuntu更新的结果

时间:2017-12-07 14:18:46

标签: bash ubuntu-16.04 apt

我试图将Ubuntu 16服务器上的/ usr / lib / update-notifier / apt-check的结果转换为数组,以便为​​监控工具做出XML响应,但不知何故,这个apt-check的值只是拒绝进入我的变量。为了简单,我省略了XML创建部分。

#!/bin/bash
APTCHECK="/usr/lib/update-notifier/apt-check"
APTResult="$(${APTCHECK})"
echo "Result is $APTResult"
exit 0

如果现在使用bash -x运行此代码,您将看到结果返回到终端,但未分配给变量。如果我替换"命令"简单的事情就像" ls -lah"一切正常。

我只是不知道为什么这不起作用?有谁?

1 个答案:

答案 0 :(得分:1)

apt-check打印到stderr,因此您需要使用aptresult=$(/usr/lib/update-notifier/apt-check 2>&1)来捕获它。

另一个选项是--human-readable开关,它会打印到标准输出。唯一的问题是你必须解析文本输出(除非文本输出是你真正想要的)。