eval

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

[root@localhost centos]# a=”ls |more”
[root@localhost centos]# $a

将 | 和 more 看成了参数,而不是将文件按页显示
复制代码 代码如下:

ls: 无法访问|: 没有那个文件或目录
ls: 无法访问more: 没有那个文件或目录

[root@localhost centos]# eval $a #取出

2.eval取得最后一个参数
复制代码 代码如下:

[root@localhost centos]# echo ‘eval echo $1’ > last
[root@localhost centos]# cat last
eval echo $1
[root@localhost centos]# ./last 1 2 3 4
4

实际上eval 就是对他所跟的参数的二次扫描,若eval 后面跟的是命令会直接执行命令,相当于执行一次命令,若命令中包含含有字符串的命令,例如:myfile=“cat file1”;如果不加eval,echo $myfile则显示cat file1,加上eval则读取字符串内容解析为命令,即cat出file1文件的内容。先扫面一次echo,再扫描一次echo的结果。

**命令代换:或 $()**
由反引号括起来的也是⼀一条命令,Shell先执⾏行该命令,然后将输出结果⽴立刻代换到当前命令⾏行
中。
$ DATE=
date`
echo DATE
例如定义⼀一个变量存放date命令的输出:
命令代换也可以⽤用 ():DATE= (date)
算术代换: (()), (())中的Shell变量取值将转换成整数,例如:
VAR=45 echo (( VAR+3))
$(())中只能⽤用+-*/和()运算符,并且只能做整数运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值