如何执行包含重定向字符的bash行(命令)? 例如,以下行无法执行。
home>CMD="ls -l > out"
home>$CMD
ls: cannot access >: No such file or directory
ls: cannot access out: No such file or directory
提前感谢您的帮助。
答案 0 :(得分:4)
eval $CMD
会做你想做的事。
答案 1 :(得分:4)
您可以使用eval,但不建议使用。如果将命令存储在变量中的目的是多次执行它,最好使用函数。
示例:
dols() {
ls -l > out
}
dols
另请参阅:I'm trying to put a command in a variable, but the complex cases always fail!