无涯教程此章节主要介绍eval命令,eval命令是内置命令。它以字符串作为参数并对其求值,然后运行存储在参数中的命令。它允许将变量的值用作变量。
eval echo \${$User}
sanjin@Learnfk ShellDemo % User=learnfk
sanjin@Learnfk ShellDemo % learnfk=无涯教程
sanjin@Learnfk ShellDemo % echo \${$User}
${learnfk}
sanjin@Learnfk ShellDemo % eval echo \${$User}
无涯教程
sanjin@Learnfk ShellDemo %
查看上面的图,命令" echo\$ {$ User}" 将$ User作为Shell变量运行并显示其输出。
但是命令" eval echo\$ {$ User}" 运行传递给eval的参数。扩展后,其余参数为 echo 和 $ {Hello} 。因此,eval命令运行命令 echo $ {Hello} 。所以输出是无涯教程
双引号必须用于变量和命令替换。如果没有双引号,Shell可能会对变量的不同单词执行字段拆分。
查看上面的图,我们已经将参数(-v -1d +%Y-%m-%d)传递给了 date 命令。这是显示的最后一周的日期和时间。
但是,当我们在变量中(yestoday)设置此命令并运行它时,该命令将无法打印日期。
查看上面的图,命令" $yestoday" 失败,而命令" eval $yestoday " 成功运行。
该符号主要用于数值评估。这是一个复合命令。
查看上面的图,单括号()给出错误,而双括号(())成功执行命令。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)