【问题标题】:Unwanted output when assigning program output to a variable in shell将程序输出分配给 shell 中的变量时不需要的输出
【发布时间】:2015-08-19 18:25:12
【问题描述】:
我正在尝试将命令的输出分配为变量,但我得到了不需要的输出。我怎样才能防止这种额外的输出?
# output=`yum check-update`
This system is not registered with RHN Classic or RHN Satellite.
You can use rhn_register to register.
RHN Satellite or RHN Classic support will be disabled.
#
【问题讨论】:
标签:
bash
variables
variable-assignment
【解决方案1】:
这可能相当困难。这看起来像是一条错误消息;它可以简单地写入标准错误,在这种情况下,运行它应该会抑制错误消息:
output=`yum check-update 2>/dev/null`
但是,如果作者确定他们的消息应该通过,他们可能会使用/dev/tty 而不是/dev/stderr 作为输出,在这种情况下,您必须将您的进程与终端分离。或者他们可能具有创造力并使用另一种技术向您传达信息。
总的来说,如果标准错误的重定向还不够,最简单的方法可能是注册 RHN Classic 或 RHN Satellite。但是,我并不真正了解这意味着什么,所以很可能有理由不这样做。