eval会对后面的命令行进行两遍扫描,如果第一遍扫描后命令行是个普通命令,则执行此命令;如果命令行是个复杂命令将会进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量,使用该命令对变量进行两次扫描。
``和$()都是命令代换,,Shell先执行``或()里的命令,然后将输出结果立刻代换到当前命令行中。
两者的区别是:
1.``反单引号适用于任何类unix平台,适用性比较高。
2.在多层次的复合替换中``之间需要反斜线处理。
eval会对后面的命令行进行两遍扫描,如果第一遍扫描后命令行是个普通命令,则执行此命令;如果命令行是个复杂命令将会进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量,使用该命令对变量进行两次扫描。
``和$()都是命令代换,,Shell先执行``或()里的命令,然后将输出结果立刻代换到当前命令行中。
两者的区别是:
1.``反单引号适用于任何类unix平台,适用性比较高。
2.在多层次的复合替换中``之间需要反斜线处理。