2

我想按照这些思路做一些事情,但是我尝试过的大多数组合都失败了:

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

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

4

1 回答 1

1

当您像这样使用它时,shell 不会重新评估您的no_error变量。./some_command它只是作为命令行参数传递给。您可以使用eval. 从bash手册

eval [arguments]

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

这是您的案例的示例:

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

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

于 2013-02-19T18:51:17.323 回答