上期美聯(lián)科技小編介紹了美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào)( )和[ ]括號(hào)的作用,這期接著來(lái)介紹美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào){ }的作用。
1、美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào){ }的常規(guī)用法
1)括號(hào){ }拓展
對(duì)括號(hào){ }中的文件名做擴(kuò)展。在括號(hào){ }中,不允許有空白,除非這個(gè)空白被引用或轉(zhuǎn)義。第一種:對(duì)括號(hào){ }中的以逗號(hào)分割的文件列表進(jìn)行拓展。如 touch {a,b}.txt 結(jié)果為a.txt b.txt。第二種:對(duì)括號(hào){ }中以.. 分割的順序文件列表起拓展作用,如:touch {a..d}.txt 結(jié)果為a.txt b.txt c.txt d.txt
2)代碼塊,又被稱為內(nèi)部組
這個(gè)結(jié)構(gòu)事實(shí)上創(chuàng)建了一個(gè)匿名函數(shù),與括號(hào)( )中的命令不同,括號(hào){ }內(nèi)的命令不會(huì)新開(kāi)一個(gè)子shell運(yùn)行,即腳本余下部分仍可使用括號(hào)內(nèi)變量。括號(hào)內(nèi)的命令間用分號(hào)隔開(kāi),最后一個(gè)也必須有分號(hào)。{ }的第一個(gè)命令和左括號(hào)之間必須要有一個(gè)空格。
2、美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào){ }的幾種特殊的替換結(jié)構(gòu)
1)${var:-string}和${var:=string}:若變量var為空,則用在命令行中用string來(lái)替換${var:-string},否則變量var不為空時(shí),則用變量var的值來(lái)替換${var:-string}
對(duì)于${var:=string}的替換規(guī)則和${var:-string}是一樣的,所不同之處是${var:=string}若var為空時(shí),用string替換${var:=string}的同時(shí),把string賦給變量var: ${var:=string}很常用的一種用法是,判斷某個(gè)變量是否賦值,沒(méi)有的話則給它賦上一個(gè)默認(rèn)值。
2) ${var:+string}的替換規(guī)則和上面的相反,即只有當(dāng)var不是空的時(shí)候才替換成string,若var為空時(shí)則不替換或者說(shuō)是替換成變量 var的值,即空值。
3)${var:?string}替換規(guī)則為:若變量var不為空,則用變量var的值來(lái)替換${var:?string};若變量var為空,則把string輸出到標(biāo)準(zhǔn)錯(cuò)誤中,并從腳本中退出。我們可利用此特性來(lái)檢查是否設(shè)置了變量的值。
3、美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào){ }的四種模式匹配替換結(jié)構(gòu)
模式匹配記憶方法:
# 是去掉左邊(在鍵盤(pán)上#在$之左邊)
% 是去掉右邊(在鍵盤(pán)上%在$之右邊)
#和%中的單一符號(hào)是最小匹配,兩個(gè)相同符號(hào)是最大匹配。
第一種模式:${variable%pattern} ,這種模式時(shí),shell在variable中查找,看它是否一給的模式pattern結(jié)尾,如果是,就從命令行把variable中的內(nèi)容去掉右邊最短的匹配模式。
第二種模式: ${variable%%pattern},這種模式時(shí),shell在variable中查找,看它是否一給的模式pattern結(jié)尾,如果是,就從命令行把variable中的內(nèi)容去掉右邊最長(zhǎng)的匹配模式。
第三種模式:${variable#pattern} 這種模式時(shí),shell在variable中查找,看它是否一給的模式pattern開(kāi)始,如果是,就從命令行把variable中的內(nèi)容去掉左邊最短的匹配模式。
第四種模式: ${variable##pattern} 這種模式時(shí),shell在variable中查找,看它是否一給的模式pattern結(jié)尾,如果是,就從命令行把variable中的內(nèi)容去掉右邊最長(zhǎng)的匹配模式。
這四種模式中都不會(huì)改變variable的值,其中,只有在pattern中使用了*匹配符號(hào)時(shí),%和%%,#和##才有區(qū)別。結(jié)構(gòu)中的pattern支持通配符,*表示零個(gè)或多個(gè)任意字符,?表示僅與一個(gè)任意字符匹配,[...]表示匹配中括號(hào)里面的字符,[!...]表示不匹配中括號(hào)里面的字符。
4、美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào){ }的字符串提取和替換
第一種模式:${var:num},這種模式時(shí),shell在var中提取第num個(gè)字符到末尾的所有字符。若num為正數(shù),從左邊0處開(kāi)始;若num為負(fù)數(shù),從右邊開(kāi)始提取字串,但必須使用在冒號(hào)后面加空格或一個(gè)數(shù)字或整個(gè)num加上括號(hào),如${var: -2}、${var:1-3}或${var:(-2)}。
第二種模式:${var:num1:num2},num1是位置,num2是長(zhǎng)度。表示從$var字符串的第$num1個(gè)位置開(kāi)始提取長(zhǎng)度為$num2的子串。不能為負(fù)數(shù)。
第三種模式:${var/pattern/pattern}表示將var字符串的第一個(gè)匹配的pattern替換為另一個(gè)pattern。
第四種模式:${var//pattern/pattern}表示將var字符串中的所有能匹配的pattern替換為另一個(gè)pattern。
以上就是美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào){ }的作用,相信可以幫助美國(guó)服務(wù)器用戶更清晰的使用美國(guó)服務(wù)器Linux系統(tǒng)中的括號(hào){ }。
關(guān)注美聯(lián)科技,了解更多IDC資訊!
美國(guó)服務(wù)器Linux系統(tǒng)中括號(hào){ }的作用
來(lái)源:美國(guó)服務(wù)器
作者:美聯(lián)科技小編Zoe
瀏覽量:152
