使用bash变量输出重定向

时间:2013-02-19 18:48:03

标签: bash

我想在这些方面做点什么,但我尝试过的大多数组合都失败了:

export no_error="2 > /dev/null"
./some_command $no_error

运行该命令并使用变量重定向输出,而不是键入命令。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

当您使用它时,shell不会重新评估您的no_error变量。它只是作为命令行参数传递给./some_command。您可以使用eval获得所需的行为。来自bash manual

  

eval [arguments]

     

将参数连接成一个命令,然后读取并执行该命令,并将其退出状态作为eval的退出状态返回。如果没有参数或只有空参数,则返回状态为零。

以下是您案例的示例:

export no_error="2>/dev/null"
eval ./some_command $no_error

请注意,2>之间不能有空格。我猜这只是你问题中的一个错字。