我试图将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"一切正常。
我只是不知道为什么这不起作用?有谁?
答案 0 :(得分:1)
apt-check
打印到stderr,因此您需要使用aptresult=$(/usr/lib/update-notifier/apt-check 2>&1)
来捕获它。
另一个选项是--human-readable
开关,它会打印到标准输出。唯一的问题是你必须解析文本输出(除非文本输出是你真正想要的)。