了解bash大括号扩展

时间:2015-11-08 21:39:42

标签: linux bash expansion brace-expansion

我读过这篇文章:https://superuser.com/questions/304807/brace-expansion-run-several-commands-instead-of-expanding-on-one-line并尝试了eval echo扩展方式。为什么下面两个命令不同?

命令1:

$ eval echo\ {a,b,c}\;

结果1:

a
b
c

命令2:

$ eval echo\ {a,b,c} \;

结果2:

a echo b echo c

1 个答案:

答案 0 :(得分:4)

eval只是令人困惑的东西,所以摆脱它:

$ echo echo\ {a,b,c}\;
echo a; echo b; echo c;
$ echo echo\ {a,b,c} \;
echo a echo b echo c ;

这应该让人们明白发生了什么。在第一种情况下,eval执行三个不同的echo命令。在第二种情况下,它只评估一个带有字符串' echo b echo c'作为一个论点。

相关问题