Shell脚本如何使用eval命令(用法图解——)

eval命令是内置命令。它以字符串作为参数并对其求值, 然后运行存储在参数中的命令。它允许将变量的值用作变量。
范例1:

eval echo \${$User}

Shell脚本如何使用eval命令(用法图解——)

文章图片
查看上面的快照, 命令” echo \ $ {$ User}” 将$ User作为shell变量运行并显示其输出。
但是命令” eval echo \ $ {$ User}” 运行传递给eval的参数。扩展后, 其余参数为echo和$ {Hello}。因此, eval命令运行命令echo $ {Hello}。所以输出是X先生
必须在变量和命令替换周围使用双引号。如果没有双引号, shell可能会对变量的不同单词执行字段拆分。
Shell脚本如何使用eval命令(用法图解——)

文章图片
范例2:
Shell脚本如何使用eval命令(用法图解——)

文章图片
查看上面的快照, 我们已将参数(1周前)传递给date命令。这是显示的最后一周的日期和时间。
但是, 当我们在变量中(上周)设置此命令并运行它时, 该命令将无法打印日期。向下看,
Shell脚本如何使用eval命令(用法图解——)

文章图片
查看上面的快照, 命令” $ lastweek” 失败, 而命令” eval $ lastweek” 成功运行。
(( )) 该符号主要用于数值评估。这是一个复合命令。
Shell脚本如何使用eval命令(用法图解——)

文章图片
【Shell脚本如何使用eval命令(用法图解——)】查看上面的快照, 单括号()给出错误, 而双括号(())成功执行命令。

    推荐阅读