Shell eval命令
Shell Scripting eval命令
eval 命令是一个内置命令。它接受一个字符串作为它的参数并计算它,然后运行存储在参数中的命令。它允许将变量的值用作变量。
示例 1:
看上面的截图,命令"echo \${$User}" 将 $User 作为 shell 变量运行并显示其输出。
但是命令 "eval echo \${$User}" 运行传递给 eval 的参数。展开后,剩下的参数是echo 和${Hello}。因此 eval 命令运行命令 echo ${Hello}。因此输出是 X 先生
双引号 必须用于变量和命令替换。如果没有双引号,shell 可能会对变量的不同单词进行字段拆分。
示例 2:
看上面的快照,我们已将参数(1 周前)传递给 date 命令。这是显示的上周日期和时间。
但是当我们在变量(lastweek)中设置此命令并运行它时,该命令无法打印日期。往下看,
看上面的快照,命令"$lastweek" 失败,而命令 "eval $lastweek" 成功运行。
(( ))
此符号主要用于数值评价。
看上面的截图,单括号( ) 在双括号 (( )) 成功执行命令时出错。