命令代换

         shell脚本中的命令代换指:执行命令并将命令替换部分替换为执行该命令后的结果,即先执行该命令,然后将命令的执行结果替换到该命令行中;

   Shell脚本中提供了三种命令命令代换:反引号(``)、$()、eval(也是Shell脚本中的一种命令代换)

   三种命令代换的功能及作用:

   反引号(``):会对命令行中'\'进行跳脱处理;

   $():相对于C语言中的(),用于算术运算;

   现以具体实例对比反引号(``)和$();

   实例1

   

   解释:因为Shell中的单引号会保持所有字符的字面值,所以引号里的执行结果应为\\,但经过反引号后,执行结果为\,即反引号对'\\'作了跳脱处理;

   实例2

   

   

   使用反引号和$()的结果相同,两者可通用;

    eval 

(1)功能:告知shell取出eval的参数,重新运算求出参数的内容;

 语法形式:eval [参数] —–其中参数不限数目,彼此之间用分号分开。

(a) eval可读取一连串的参数,然后再依参数本身的特性来执行。

(b) ‘参数’是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次,再次运算求出参数的内容。

 注意:如果变量中包含任何需要shell直接在命令行中看到的字符(不是替换的结果),就可以使用eval。命令行结束符(; | &),I/o重定向符(< >)和引号就属于对shell具有特殊意义的符号,必须直接出现在命令行中。

(2)取得最后一个参数

 实例1

 

 

 实例2

   

 

 反引号、$()和eval是shell中的命令代换,各有用途,常用的是反引号和$(),这两个必须熟练掌握;

 

 

 


   

   

   

   

   

    

   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值