我想在这些方面做点什么,但我尝试过的大多数组合都失败了:
export no_error="2 > /dev/null"
./some_command $no_error
运行该命令并使用变量重定向输出,而不是键入命令。我该怎么做呢?
答案 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
和>
之间不能有空格。我猜这只是你问题中的一个错字。