eval 的用法

转载 2013年12月03日 17:10:33

1. eval command-line

其中commandline是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次。如:

pipe="|"

eval ls $pipe wc -l

shell1次扫描命令行时,它替换出pipe的值|,接着eval使它再次扫描命令行,这时shell把|作为管道符号了。

如果变量中包含任何需要shell直接在命令行中看到的字符(不是替换的结果),就可以使用eval命令行结束符(;  &),Io重定向符(< >)和引号就属于对shell具有特殊意义的符号,必须直接出现在命令行中。

2. eval echo \$$# 取得最后一个参数

如:cat last

eval echo \$$#

./last one two three four

four

第一遍扫描后,shell把反斜杠去掉了。当shell再次扫描该行时,它替换了$4的值,并执行echo命令

3.以下示意如何用eval命令创建指向变量的“指针”:

x=100

ptrx=x

eval echo \$$ptrx   #可以理解为第一次扫描后把反斜杠去掉,变成$$ptrx,意思是变量的值得值。这里是变量间接引用的用法。注意,扫描两次才再执行不等于执行两次。

 

eval $ptrx=50 50存到ptrx指向的变量中。

echo $x

50 打印50

相关文章推荐

C# Eval在asp.net中的用法及作用

转自:http://www.cnblogs.com/Mr_JinRui/archive/2010/07/06/1772129.html Eval( " ")和Bind( " ...

python3中eval函数用法简介

python中eval函数的用法十分的灵活,这里主要介绍一下它的原理和一些使用的场合。 下面是从python的官方文档中的解释:    The arguments are a string a...

ASP.NET中的DataBinder.Eval用法

//绑定字段 //实现自动编号 通常使用的方法

【Ruby】instance_eval和class_eval用法讲解

最近开始学习Ruby,在看到instance_eval和class_eval的用法时,觉得很是困惑,于是对此进行研究并整理一下。...

trec_eval_latest.tar

  • 2017年10月28日 11:36
  • 384KB
  • 下载

Z.Expressions.Eval.2.4.2

  • 2017年11月03日 17:08
  • 645KB
  • 下载

shell中eval的神奇之法,shell中引号的争端

话说大家都知道,shell中的变量是等价替换的。例如下面这个例子: 上面这个结果就是表示给变量cmd赋值为ls -lrt  ,然后直接使用变量就相当于执行了ls -lrt ...

STM3240G-EVAL 原理图 说明书

  • 2016年05月31日 11:38
  • 4.03MB
  • 下载

RTX651Eval

  • 2014年01月23日 11:07
  • 15.5MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:eval 的用法
举报原因:
原因补充:

(最多只允许输入30个字)