博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux-eval
阅读量:6648 次
发布时间:2019-06-25

本文共 992 字,大约阅读时间需要 3 分钟。

shell中eval的用法示例:

 

语  法:eval [参数]

功能说明:eval会对后面的[参数]进行两遍扫描,如果在第一遍扫面后cmdLine是一个普通命令,则执行此命令;如果cmdLine中含有变量的间接引用,则保证间接引用的语义

补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。

参  数:参数不限数目,彼此之间用分号分开。

 

使用案例:

1.不加eval则将 | 和 more 看成了参数,而不是将文件按页显示

[root@ipi ~]# a="ls |more"[root@ipi ~]# $a ls: cannot access |more: No such file or directory

加入eval改善执行结果:

[root@ipi ~]#eval $a
DesktopDocumentsDownloadsinstall.loginstall.log.syslogiptables.sh
正常输出想要的结果

2.此条命令不加eval直接将${a}作为参数输出,加了eval则输出了a的赋值“123”

[root@ipi ~]# a="123"[root@ipi ~]# echo '${
'"a"'}' ${a}[root@ipi ~]# eval echo '${
'"a"'}' #再次执行${a}命令123

3.如下:

[root@ipi ~]#  set 1 2 3 4 如果我们要输出4 可以使用echo $4,那假设我们不知道一共有几位,我要输出最后一位的话得用“$#”,也就是\$$#[root@ipi ~]#  \$$#$4 我们发现它并没有返回我们想要的结果,so  加入eval可以解决我们的问题[root@ipi ~]# eval \$$#
4

另外其他高级用法后作补充!

eval是对Bash Shell命令行处理规则的灵活应用,进而构造"智能"命令实现复杂的功能。
上面提及的命令是eval其中一个很普通的应用,它重复了1次命令行参数传递过程,纯粹地执行命令的命令。
其实它是bash的难点,是高级bash程序员的必修之技。

转载于:https://www.cnblogs.com/-abm/p/7890834.html

你可能感兴趣的文章
什么是记录型数字压力表?被应用在哪些领域?
查看>>
零基础学习Python的4个方法
查看>>
Clouds
查看>>
好程序员带你认识HTML5中的WebSocket
查看>>
PDA是什么功能有哪些
查看>>
一文了解 SaCa DataViz 企业版和标准版的区别
查看>>
CentOS 5的KVM安装使用说明
查看>>
php warning: php startup: in unknown on line 0
查看>>
【CentOS 7.1】配置防火墙 iptables
查看>>
二十七、单张图片上传预览
查看>>
一例千万级pv高性能高并发网站架构
查看>>
Android平台通用安全问题分析及策略(一)
查看>>
Oracle面向对象的应用实例
查看>>
总结-计划
查看>>
POJ 2506 Tiling dp+大数 水题
查看>>
EasyCHM - 电子书制作软件
查看>>
电脑组装图文教程电子书
查看>>
U盘安全工具箱 V 1.0 修正版
查看>>
Java定时任务的简单实现
查看>>
cacti运维手册
查看>>