Shell中eval的用法示例

页面导航:首页 > 脚本专栏 > shell > Shell中eval的用法示例

Shell中eval的用法示例

来源:互联网 作者:脚本宝典 时间:2015-07-21 13:30 【

功能说明:告知shell取出eval的参数,重新运算求出参数的内容。 语 法:eval [参数] 补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。 参 数:参数不限数目,彼此之

功能说明:告知shell取出eval的参数,重新运算求出参数的内容。
语  法:eval [参数]
补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。
参  数:参数不限数目,彼此之间用分号分开。
1.执行命令行之前扫描它两次,再次运算求出参数的内容。

复制代码代码如下:


[[email protected] blue]# a="ls |more"
[[email protected] blue]# $a                                           #ls


将 | 和 more 看成了参数,而不是将文件按页显示

复制代码代码如下:


ls: cannot access |more: No such file or directory
[[email protected] blue]# eval $a                                    #取出


其参数并再次执行它们

复制代码代码如下:


1
1.cpp
2
2.cpp
3
3.cpp
[[email protected] test]# a="123"
[[email protected] test]# echo '${'"a"'}'                         
${a}
[[email protected] test]# eval echo '${'"a"'}'                #再次执行${a}命令
123 


2.eval取得最后一个参数

复制代码代码如下:


[[email protected] blue]# echo 'eval echo \$$#' > last
[[email protected] blue]# cat last
eval echo \$$#
[[email protected] blue]# ./last 1 2 3 4
4


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


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<