在命令开头使用变量中的命令进行重定向失败

在命令开头使用变量中的命令进行重定向失败

我想将命令字符串放入变量中。这就是我正在做的

ssh=">/dev/null ssh -i key domain"

然后我想调用这个命令:

$ssh ls >&2

但这失败了:

bash: 1>/dev/null: No such file or directory

这是预期的行为吗?

答案1

是的,这是预期的,因为您试图由于引号而执行不存在的命令“>/dev/null...”。

看看这个:https://stackoverflow.com/questions/794728/variables-as-commands-in-bash-scripts

答案2

您正在寻找评估...

eval "$ssh ls >&2"

或者

eval "$ssh ls" >&2

相关内容