在bash子shell中进行回声

时间:2016-03-21 17:18:38

标签: bash echo subshell

如何在bash子shell中调用echo?这是我想要的行为:

# w=5
# echo $w > /tmp/x
# cat /tmp/x
5

可是:

# cmd="echo $w > /tmp/x"
# $cmd
5 > /tmp/x

# $( $cmd )
bash: 5: command not found

1 个答案:

答案 0 :(得分:5)

您的问题不是echo

您的问题是重定向。你不能将重定向放在字符串中。

这就是为什么在第一次尝试中echo输出5 > /tmp/x的原因。

你的第二次尝试的问题是你失去了" echo尝试运行输出时的$()(因为第一次尝试显示$cmd的输出是5 > /tmp/x,这不是有效的命令。

那说这是Bash FAQ 050所以停止尝试将命令放在变量中。它没有用。