我想按照这些思路做一些事情,但是我尝试过的大多数组合都失败了:
export no_error="2 > /dev/null"
./some_command $no_error
运行该命令并使用变量而不是键入命令来重定向输出。我该怎么做呢?
我想按照这些思路做一些事情,但是我尝试过的大多数组合都失败了:
export no_error="2 > /dev/null"
./some_command $no_error
运行该命令并使用变量而不是键入命令来重定向输出。我该怎么做呢?
当您像这样使用它时,shell 不会重新评估您的no_error
变量。./some_command
它只是作为命令行参数传递给。您可以使用eval
. 从bash
手册:
eval [arguments]
参数被连接在一起形成一个命令,然后读取并执行该命令,其退出状态返回为 的退出状态
eval
。如果没有参数或只有空参数,则返回状态为零。
这是您的案例的示例:
export no_error="2>/dev/null"
eval ./some_command $no_error
2
请注意,在和之间不能有空格>
。不过,我猜这只是您问题中的一个错字。