【Shell】命令代换

前端之家收集整理的这篇文章主要介绍了【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的值就被打出来了

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

猜你在找的Bash相关文章