免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3450 | 回复: 6
打印 上一主题 下一主题

谁能介绍一下shell里的eval用法呀,原理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-06 11:58 |只看该作者 |倒序浏览
谁能介绍一下shell里的eval用法呀,原理

谁能介绍一下shell里的eval用法呀,原理

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2010-10-06 12:00 |只看该作者
打开ABS,看看第177页。

Advanced Bash-Scripting Guide 3.9.1 中文版.pdf
http://bbs.chinaunix.net/thread-1610033-1-1.html

论坛徽章:
0
3 [报告]
发表于 2010-10-06 13:09 |只看该作者
HAT哥威武

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2010-10-06 14:20 |只看该作者
簡單來說,就是將已經完成一輪擴展之後的 command line 再 re-run 一次。

论坛徽章:
0
5 [报告]
发表于 2010-10-06 16:32 |只看该作者
STFW || RTFM

论坛徽章:
0
6 [报告]
发表于 2010-10-06 18:17 |只看该作者
回复 2# Shell_HAT


    呵呵,你总是那么的到位...

论坛徽章:
0
7 [报告]
发表于 2010-10-06 18:18 |只看该作者
假设一个变量的值是第二个变量的名字. 这样要如何才能从第一个变量处重新获得第二个变量的值?例如,a=letter_of_alphabet和letter_of_alphabet=z, 是否能由a引用得到z ? 这确实可以办到,这种技术被称为间接引用.它使用不平常的eval var1=\$$var2 序列.



   1 #!/bin/bash

   2 # ind-ref.sh: 间接变量引用.

   3 # 访问一个变量内容所指的变量的值.

   4

   5 a=letter_of_alphabet # 变量"a"保存着另外一个变量的名字.

   6 letter_of_alphabet=z

   7

   8 echo

   9

  10 # 直接引用.

  11 echo "a = $a" # a = letter_of_alphabet

  12

  13 # 间接引用.

  14 eval a=\$$a

  15 echo "Now a = $a" # 现在 a = z
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP