标签:实现 linu syslog doc director cat dir 命令行 shel
shell中eval的用法示例:
功能说明:告知shll取出eval的参数,重新运算求出参数的内容。
语 法:eval [参数]
补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。
参 数:参数不限数目,彼此之间用分号分开。
1.执行命令行之前扫描它两次,再次运算求出参数的内容。出现错误:将 | 和 more 看成了参数,而不是将文件按页显示
[root@ipi ~]# a="ls |more" [root@ipi ~]# $a
ls: cannot access |more: No such file or directory
加入eval改善执行结果:
[root@ipi ~]#eval $a
Desktop
Documents
Downloads
install.log
install.log.syslog
iptables.sh
正常输出想要的结果
2.例:将...
[root@ipi ~]# a="123" [root@ipi ~]# echo ‘${‘"a"‘}‘ ${a} [root@ipi ~]# eval echo ‘${‘"a"‘}‘ #再次执行${a}命令 123
3.eval取得最后一个参数
[root@ipi ~]# echo ‘eval echo \$$#‘ > last [root@ipi ~]# cat last eval echo \$$# [root@ipi ~]# ./last 1 2 3 4 4
另外其他高级用法后作补充!
eval是对Bash Shell命令行处理规则的灵活应用,进而构造"智能"命令实现复杂的功能。
上面提及的命令是eval其中一个很普通的应用,它重复了1次命令行参数传递过程,纯粹地执行命令的命令。
其实它是bash的难点,是高级bash程序员的必修之技。
标签:实现 linu syslog doc director cat dir 命令行 shel
原文地址:http://www.cnblogs.com/-abm/p/7890834.html