请选择 进入手机版 | 继续访问电脑版

[LINUX] linux下令 eval的用法讲解

[复制链接]
查看47 | 回复1 | 2021-9-5 03:50:58 | 显示全部楼层 |阅读模式

1. eval command-line

此中 command-line是在终端上键入的一条平常 下令 行。然而当在它前面放上eval时,其效果 是shell在实行 下令 行之前扫描它两次。如:

pipe="|"

eval ls $pipe wc -l

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

假如 变量中包含任何必要 shell直接在下令 行中看到的字符(不是更换 的效果 ),就可以使用 eval。下令 行竣事 符(; | &),I/o重定向符(< >)和引号就属于对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,用这里的方法可以明确 b中的例子

100 打印100

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

echo $x

50 打印50


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar Runlinh | 2021-10-4 09:15:01 | 显示全部楼层
顶一下,收藏了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则