Return 结果 Ubuntu 变量更新

Return results for Ubuntu Updates in a Variable

我试图从 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 这段代码,您将看到结果返回到终端,但没有分配给变量。如果我将 "command" 替换为像 "ls -lah" 这样简单的东西,一切正常。

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

apt-check 打印到标准错误,因此您需要使用 aptresult=$(/usr/lib/update-notifier/apt-check 2>&1).

来捕获它

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