执行包含重定向字符的bash行(命令)

时间:2013-04-13 18:22:53

标签: linux bash

如何执行包含重定向字符的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

提前感谢您的帮助。

2 个答案:

答案 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!