【问题标题】: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。但是,我并不真正了解这意味着什么,所以很可能有理由不这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      • 2016-09-08
      • 2013-04-10
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      相关资源
      最近更新 更多