第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

linux(shell):if [[ ! ${file} =~ ^[0-9]+ ]] 求大神指教?

linux(shell):if [[ ! ${file} =~ ^[0-9]+ ]] 求大神指教?

_百慕大 2017-01-19 18:49:33
首先我要聲明一下,我在虛擬機(jī)里照著敲,卻達(dá)不到視頻的效果,所以我說(shuō)一下我對(duì)這條語(yǔ)句的看法:外面的[]是條件的標(biāo)準(zhǔn)用法,而次級(jí)的[]應(yīng)該就是說(shuō)明里面是一個(gè)正則表達(dá)式(第1點(diǎn)),那么現(xiàn)在我按照里面這個(gè)式子的優(yōu)先級(jí)來(lái)解釋一下先是“=“右邊,在說(shuō)右邊之前,我再多幾句:如果就單純的一個(gè)正則表達(dá)式,那么^a就表示以a開(kāi)頭的匹配,如果^[^a]表示不以a開(kāi)頭的匹配,好了,我們?cè)賮?lái)說(shuō)這個(gè)”=“右邊,首先是一個(gè)"~"這在我看來(lái)應(yīng)該是一個(gè)取反(按位取反)(第2點(diǎn)),但是我想我應(yīng)該理解錯(cuò)了,然后是^[0-9]+表示的是以任意整數(shù)開(kāi)頭并且重復(fù)1到n次接著是”=“左邊,${file}(第3點(diǎn))明顯是用一個(gè)變量來(lái)接收等號(hào)右邊的值,然后再在最前面加上一個(gè)”!“,表明是相反的結(jié)果,即"!1==0"(C語(yǔ)言)第1點(diǎn)和第2點(diǎn)是否理解正確?第3點(diǎn)${file}是$file的標(biāo)準(zhǔn)用法?然后總結(jié),我總結(jié)不了。。。。求大神指出錯(cuò)誤
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

你的理解有些是對(duì)的,不過(guò)若你在思考前先看看手冊(cè)就更好了,這樣能避免多余的腦補(bǔ)。


一個(gè)中括號(hào) [...] 和 兩個(gè)中括號(hào) [[...]] 的用法是相似的,它們都是用于條件判斷表達(dá)式的,所以常跟在 if 后面作條件判斷之用。 [...] 版本算是內(nèi)建的功能,而[[...]] 版本是復(fù)合命令,除了完全支持 [...] 的功能外,還增加了正則表達(dá)式判斷功能。

=~ 運(yùn)算符就是進(jìn)行正則表達(dá)式判斷之用的,左側(cè)的字符串會(huì)依右側(cè)的正則表達(dá)式做匹配,若匹配則結(jié)果為true,不匹配則結(jié)果為false。 所以這里的 ~ 并不是取反。


那么?${file} 自然也就不是用來(lái)接收結(jié)果的變量了。?${file} 本身的意義就是很正常的,你不要過(guò)多聯(lián)想。

${file} 就是一個(gè)參數(shù)展開(kāi),也就是 file 的值。是的,這和 $file 是一樣的,大括號(hào)是可選的,目的是明確標(biāo)明參數(shù)。 $file 這樣簡(jiǎn)單的情形看不出區(qū)別,但假如要展開(kāi)的參數(shù)后面還有別的字符:

比如 $fileabc,我想將 file 參數(shù)展開(kāi)的結(jié)果和后面的 abc 連成一個(gè)字符串,但 bash 會(huì)以為你要展開(kāi)的參數(shù)是 fileabc,這時(shí)就可以用大括號(hào)將參數(shù)標(biāo)識(shí)出來(lái) ${file}abc 這樣就沒(méi)問(wèn)題了。

我猜這里大概是要判斷文件名是否為數(shù)字開(kāi)頭吧...


最前面的感嘆號(hào) !,沒(méi)錯(cuò),這是將前述的判斷結(jié)果取反。

查看完整回答
1 反對(duì) 回復(fù) 2017-01-20
  • _百慕大
    _百慕大
    謝謝你的解答,由于我是按照路徑來(lái)學(xué)習(xí)的,手冊(cè)什么的還沒(méi)看,確實(shí)有些地方不是很清楚
  • 1 回答
  • 0 關(guān)注
  • 3560 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)