eval in Shell
2024-09-28 06:27:35
语法: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/
最新文章
- GP 环境参数名称列表
- ASPxGridView中DetailRow的使用
- windows通过thrift访问hdfs
- android ListView内数据的动态添加与删除
- Highcharts Pie 饼图提示标签IE下重叠解决方法,及json数据绑定方法
- object C—类中函数的调用
- Windows Phone开发(42):缓动动画
- getline函数(精华版)
- Oracle使用游标删除所有用户数据表中的所有记录脚本
- PS教程:抠透明冰块
- Java并发编程75道面试题及答案
- c++中的const与指针
- webStrom访问只一个很简单的html文件的时候显示local host无法访问。。
- 第九节:详细讲解Java中的泛型,多线程,网络编程
- Feign快速入门
- Java NIO 与 IO之间的区别
- 关于在mac安装安卓的模拟器的一些些那点事情~~~
- POJ1035&;&;POJ3080&;&;POJ1936
- C# Language Specification 5.0 (翻译)第二章 词法结构
- Jquery消息提示插件toastr使用