eval会对后面的命令行进行两遍扫描,如果第一遍扫描后命令行是个普通命令,则执行此命令;如果命令行是个复杂命令将会进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量,使用该命令对变量进行两次扫描。
``和$()都是命令代换,,Shell先执行``或()里的命令,然后将输出结果立刻代换到当前命令行中。
两者的区别是:
1.``反单引号适用于任何类unix平台,适用性比较高。
2.在多层次的复合替换中``之间需要反斜线处理。
本文探讨了eval命令的工作原理及其应用场景,同时对比了两种命令代换方式``和$()的不同之处,包括它们的适用范围及特殊场景下的使用技巧。
eval会对后面的命令行进行两遍扫描,如果第一遍扫描后命令行是个普通命令,则执行此命令;如果命令行是个复杂命令将会进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量,使用该命令对变量进行两次扫描。
``和$()都是命令代换,,Shell先执行``或()里的命令,然后将输出结果立刻代换到当前命令行中。
两者的区别是:
1.``反单引号适用于任何类unix平台,适用性比较高。
2.在多层次的复合替换中``之间需要反斜线处理。
1869

被折叠的 条评论
为什么被折叠?