首页 > 系统服务 > 详细

eval in Shell

时间:2014-12-21 16:27:20      阅读:334      评论:0      收藏:0      [点我收藏+]

  语法:eval cmdLine
  eval会对后面的cmdLine进行两遍扫描,如果第一遍扫描后,cmdLine是个普通命令,则执行此命令;

  如果cmdLine中含有变量的间接引用,则保证间接引用的语义。

  举例如下:

  func 11 22 33 44

  如果要输出最后一个参数44,可以使用如下命令:

  echo $4

  但是如果我们不知道有几个参数的时候,要输出最后一个参数,大家可能会想到使用$#来输出最后一个参数,

  如果使用命令:

  echo "\$$#"

  则得到的结果是 $4,而不是我们想要的44。这里涉及到一个变量间接引用的问题,我们的本意是输出 $4,默认

情况下,命令后忽略变量间接引用的情况。

  这时候,就可以使用eval命令。

  eval echo "\$$#"

  得到的结果为44.

 

Reference:

shell中eval的使用问题 : http://doudouclever.blog.163.com/blog/static/175112310201252111104169/ 

eval in Shell

原文:http://www.cnblogs.com/lxw0109/p/eval.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!