新聞中心
在bash中,與(反引號(hào))都是用來(lái)作命令替換的,命令替換與變量替換差不多,都是用來(lái)重組命令行的,先完成引號(hào)里的命令行,然后將其結(jié)果替換出來(lái),再重組成新的命令行,下面為大家分享一下反引號(hào))和 $()具體使用方法。

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出什邡免費(fèi)做網(wǎng)站回饋大家。
反引號(hào)的使用方式
下面是一個(gè)簡(jiǎn)單的實(shí)例:
[root@localhost ~]# echo "There are `ls | wc -l` files in this directory"
There are 10 files in this directory
ls |wc -l 用于列出和計(jì)算當(dāng)前目錄的文件數(shù),然后將它嵌入到 echo 命令中。
在 shell 腳本中,當(dāng)然可以執(zhí)行相同的操作,將ls | wc -l命令的結(jié)果分配給一個(gè)變量,稍后使用該變量。
[root@localhost ~]# file_count=`ls | wc -l`
[root@localhost ~]# echo "There are $file_count files in this directory"
There are 10 files in this directory
Bash 腳本:
(反引號(hào))運(yùn)算符和 $()的使用方式Bash 腳本:(反引號(hào))運(yùn)算符和 $()的使用方式
$()的使用方式
也可以通過(guò)使用$()代替“`反引號(hào)來(lái)獲得相同的結(jié)果,如下例所示:
[root@localhost ~]# echo "There are $(ls | wc -l) files in this directory"
There are 10 files in this directory
下面是一個(gè)例子,我需要對(duì)網(wǎng)絡(luò)連接中的某些問(wèn)題進(jìn)行故障排除,因此我決定每分鐘顯示總連接數(shù)和等待連接數(shù)。
[root@localhost ~]# vim netinfo.sh
#!/bin/bash
while true
do
ss -an > netinfo.txt
connections_total=$(cat netinfo.txt | wc -l)
connections_waiting=$(grep WAIT netinfo.txt | wc -l)
printf "$(date +%R) - Total=%6d Waiting=%6d\n" $connections_total $connections_waiting
sleep 60
done
運(yùn)行一下腳本:
[root@localhost ~]# ./netinfo.sh
17:13 - Total= 158 Waiting= 4
17:14 - Total= 162 Waiting= 0
17:15 - Total= 155 Waiting= 0
17:16 - Total= 155 Waiting= 0
17:17 - Total= 155 Waiting= 0
Bash 腳本:
(反引號(hào))運(yùn)算符和 $()的使用方式Bash 腳本:(反引號(hào))運(yùn)算符和 $()的使用方式
如何選擇使用哪種方式
這里更推薦使用$()方式。下面是原因: \1. 如果內(nèi)部命令也使用,運(yùn)算符可能會(huì)變得混亂。
-
將需要轉(zhuǎn)義內(nèi)部的“`,如果將單引號(hào)作為命令的一部分或結(jié)果的一部分,閱讀和排除腳本故障可能會(huì)變得困難。
-
如果開(kāi)始考慮在其他
運(yùn)算符中嵌套運(yùn)算符,則事情將不會(huì)按預(yù)期工作或根本不起作用。
\2. $()操作符更安全,更可預(yù)測(cè)。
在 $() 運(yùn)算符中的內(nèi)容被視為 shell 腳本。從語(yǔ)法上講,這和把代碼保存在文本文件中是一樣的。
以下是“`和$()行為差異的一些示例:
[root@localhost ~]# echo '\$x'
\$x
[root@localhost ~]# echo `echo '\$x'`
$x
[root@localhost ~]# echo $(echo '\$x')
\$x
Bash 腳本:
(反引號(hào))運(yùn)算符和 $()的使用方式Bash 腳本:(反引號(hào))運(yùn)算符和 $()的使用方式
總結(jié)
在較為復(fù)雜的命令語(yǔ)句中,推薦使用$()方式。
當(dāng)前文章:反引號(hào))和$()具體使用方法
本文來(lái)源:http://fisionsoft.com.cn/article/cdedjsd.html


咨詢
建站咨詢
