Jav*_*eak 1 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}\;
Run Code Online (Sandbox Code Playgroud)
结果1:
a
b
c
Run Code Online (Sandbox Code Playgroud)
指令2:
$ eval echo\ {a,b,c} \;
Run Code Online (Sandbox Code Playgroud)
结果2:
a echo b echo c
Run Code Online (Sandbox Code Playgroud)
的eval只是混乱的东西,所以摆脱它:
$ echo echo\ {a,b,c}\;
echo a; echo b; echo c;
$ echo echo\ {a,b,c} \;
echo a echo b echo c ;
Run Code Online (Sandbox Code Playgroud)
这应该使正在发生的事情变得显而易见。在第一种情况下,eval执行三个不同的回显命令。在第二个中,它仅评估一个以字符串“ a echo b echo c”作为参数的命令。