shell脚本内使用重定向符>被误当作程序参数如何解决?

如果写成以下形式,就会报错“Could not open path >”

cmd="lexparser.sh input.txt > tree.txt"
`$cmd`

如果不通过变量,直接执行则不会出错

lexparser.sh input.txt > tree.txt

是否是因为 > 放在 "" 内失去特殊符号意义了?
如果必须用字符串转一遍,如果让它恢复成特殊符号?

可以用

eval “$cmd”

就不会出现这个问题了。