Unix 反引號(hào)知識(shí)講解
今天,我們來(lái)學(xué)習(xí)下Unix 反引號(hào)的知識(shí)。首先,我們來(lái)說(shuō)說(shuō)什么是Unix 反引號(hào)。反引號(hào)(`)這個(gè)字符所對(duì)應(yīng)的鍵一般位于鍵盤的左上角,不要將其同單引號(hào)(’)混淆。
反引號(hào)括起來(lái)的字符串被shell解釋為命令行,在執(zhí)行時(shí),shell首先執(zhí)行該命令行,并以它的標(biāo)準(zhǔn)輸出結(jié)果取代整個(gè)反引號(hào)(包括兩個(gè)反引號(hào))部分。
例如:
- $ pwd
- /home/xyz
- $ string=”current directory is `pwd`”
- $ echo $string
- current directour is /home/xyz
- $
shell執(zhí)行echo命令時(shí),首先執(zhí)行`pwd`中的命令pwd,并將輸出結(jié)果/home/xyz取代`pwd`這部分,最后輸出替換后的整個(gè)結(jié)果。
利用Unix 反引號(hào)的這種功能可以進(jìn)行命令置換,即把Unix 反引號(hào)括起來(lái)的執(zhí)行結(jié)果賦值給指定變量。例如:
- $ today=`date`
- $ echo Today is $today
- Today is Mon Apr 15 16:20:13 CST 1999
- $
Unix 反引號(hào)還可以嵌套使用。但需注意,嵌套使用時(shí)內(nèi)層的Unix 反引號(hào)必須用反斜線(\)將其轉(zhuǎn)義。例如:
- $ abc=`echo The number of users is \`who| wc-l\``
- $ echo $abc
- The number of users is 5
- $
在Unix 反引號(hào)之間的命令行中也可以使用shell的特殊字符。Shell為得到``中命令的結(jié)果,它實(shí)際上要去執(zhí)行``中指定的命令。執(zhí)行時(shí),命令中的特殊字符,如$,”,?等又將具有特殊含義,并且``所包含的可以是任何一個(gè)合法的Shell命令,如:
- $ ls
- note readme.txt Notice Unix.dir
- $ TestString=”`echo $HOME ` ` ls [nN]*`”
- $ echo $TestString
- /home/yxz note Notice
關(guān)于Unix 反引號(hào)的知識(shí),我們就暫時(shí)介紹到這里了,希望大家能夠給我們更多的關(guān)注。
【編輯推薦】