|
|
发表于 2004-2-8 18:56:15
|
显示全部楼层
最初由 qhgary 发表
那是不是eval后面一般都会用这个$() 使用eval可以编写能够“编写”和执行其他程序的程序。
实际上不用eval也可完成,方式是通过echo命令到一个临时文件中,然后使用source执行该文件,但这样做效率会差一些。 以上摘自《Learning the bash Shell》
也就是说,当一命令产生的输出是shell代码,而我们又想再次执行该代码(执行程序的程序)时,就需要eval这种bash高级特性。在日常shell编程中一般不会用到eval。自然,eval $()只是eval的一种应用模式而已。
比如说,你也可以这样用。- codestr="ls -alF"
- eval $codestr
复制代码 |
|