shell括號(hào)用法匯總
總結(jié):
${} 等同于 $ 作用:獲取變量值
$[] 等同于 $(()) 作用:數(shù)學(xué)運(yùn)算
$() 等同于 `` 作用:命令嵌套
[] 等同于 test 作用:條件判斷,用于判斷表達(dá)式的返回值是0或是非0
[[]] 等同于 [] 作用:[[]]是[]的增強(qiáng)版
(())主要用法有三種:
1)與$結(jié)合使用進(jìn)行數(shù)學(xué)運(yùn)算$(( ))
2)在for循環(huán)命令中控制循環(huán),類似于c語言
3)改變變量的值,且不需要$引用
${}:作用是獲取變量的結(jié)果,一般情況下,$var與${var}是沒有區(qū)別的,但是用${ }會(huì)比較精確的界定變量名稱的邊界范圍。
$[]:進(jìn)行數(shù)學(xué)運(yùn)算
$():命令替換操作,同反應(yīng)引號(hào)``,即命令的嵌套使用,將$()中包括的命令執(zhí)行結(jié)果向外傳遞。 舉例:echo today is $(date "+%Y-%m-%d")
${}與$:$與${}都是用來引用變量的,只不過${}可以指定變量邊界,也可用于對(duì)字符串變量進(jìn)行截取等處理
$[]和$(( )):$[]和$(())的作用一樣,都是進(jìn)行數(shù)學(xué)運(yùn)算的,支持±*/%,并且在$[]和$(( ))中使用變量不需要$引用,可以直接使用變量名

同樣可以進(jìn)行數(shù)學(xué)運(yùn)算的還有expr命令和bc命令

bc是linux的計(jì)算器,是交互式命令,但是bc支持從標(biāo)準(zhǔn)輸入中讀取參數(shù)及逆行運(yùn)算,但是bc不支持從命令行中讀取運(yùn)算式

$()和``:$()和``的作用一致,都是用來做命令替換用,一般用于將命令返回的結(jié)果傳遞給變量
a=$(ls /home/)
a=`ls /home/`
a保存的是上述命令的返回值,即一個(gè)目錄列表
(( )):(( ))的主要用法大概有三個(gè):
1)與$結(jié)合使用進(jìn)行數(shù)學(xué)運(yùn)算$(( ))
2)在for循環(huán)命令中控制循環(huán),類似于c語言
3)改變變量的值,且不需要$引用


[]與test:[]是test命令的另一種形式,用于判斷某個(gè)表達(dá)式的返回值是0或者非0,常用于if命令的判斷條件,test $a == "linux" 等效于 [ $a == "linux" ]

注意"[“后和”]“前都需要有空格,并且”=="兩邊也都要有空格
[[ ]]:[[ ]]是[]的增強(qiáng)版,其返回值也是0或者非0
1)在[[]]中使用><等符號(hào)不需要轉(zhuǎn)義字

2)支持&&和||,但是僅僅支持==和!=的連接判斷

3)[[ ]]在比較字符串支持正則匹配和通配符匹配


浙公網(wǎng)安備 33010602011771號(hào)