今天,我们来学习下Unix 反引号的知识。首先,我们来说说什么是Unix 反引号。反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。
反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
例如:
- $ pwd
- /home/xyz
- $ string=”current directory is `pwd`”
- $ echo $string
- current directour is /home/xyz
- $
shell执行echo命令时,首先执行`pwd`中的命令pwd,并将输出结果/home/xyz取代`pwd`这部分,最后输出替换后的整个结果。
利用Unix 反引号的这种功能可以进行命令置换,即把Unix 反引号括起来的执行结果赋值给指定变量。例如:
- $ today=`date`
- $ echo Today is $today
- Today is Mon Apr 15 16:20:13 CST 1999
- $
Unix 反引号还可以嵌套使用。但需注意,嵌套使用时内层的Unix 反引号必须用反斜线(\)将其转义。例如:
- $ abc=`echo The number of users is \`who| wc-l\``
- $ echo $abc
- The number of users is 5
- $
在Unix 反引号之间的命令行中也可以使用shell的特殊字符。Shell为得到``中命令的结果,它实际上要去执行``中指定的命令。执行时,命令中的特殊字符,如$,”,?等又将具有特殊含义,并且``所包含的可以是任何一个合法的Shell命令,如:
- $ ls
- note readme.txt Notice Unix.dir
- $ TestString=”`echo $HOME ` ` ls [nN]*`”
- $ echo $TestString
- /home/yxz note Notice
关于Unix 反引号的知识,我们就暂时介绍到这里了,希望大家能够给我们更多的关注。
【编辑推荐】