【Shell】命令代换

命令代换

基本概念

命令代换的基本思想是,先执行指定的内部指令,然后将其结果替换出来,重新组成新的命令行。

两种命令代换的格式

(1) 反引号 ``

#!/bin/bash

DATE=`date`
echo $DATE

(2) $()

#!/bin/bash

FILE=$(ls)
echo $FILE


两者的区别和联系

1、反引号适用于所有Unix系统,但是$()只有一部分系统支持。前者的可移植性要好

2、反引号容易和单引号进行混淆,$()则清晰明了,一清二楚

3、反引号对反斜杠 '\' 进行跳脱处理,而$()不会

相关的eval指令

功能

告知shell取出eval的参数,重新运算求出参数的内容。

语法

eval [参数] 

补充

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

参数

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

eval执行命令行前扫描两次,再次运算求出参数内容,eval是对Bash Shell命令行处理规则的灵活应用,进而构造”智能”命令实现复杂的功能。 

练习


由于单引号会保持其内容字面值,所以echo打出来的就是字符串${a}

当加了命令eval后,a的值就被打出来了

这就后面,它会扫描两次,然后求出参数的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值