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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于 if [[ ! ${execshell =~ ^[0-9]+} ]] 有幾點(diǎn)不清楚的地方?

關(guān)于if [[ ! ${execshell =~ ^[0-9]+} ?]] 有幾點(diǎn)不清楚的地方:

[[ ]] 兩個(gè)中括號(hào)是什么意思?

=~ 這個(gè)又是什么意思?我查資料,正則表達(dá)式里面沒有~符號(hào)啊?

^[0-9]+ 代表的是開頭的字符最少一個(gè)是數(shù)字

但是我輸入11111,也會(huì)匹配不上,正則表達(dá)式不是包含匹配的嗎,11111開頭的第一個(gè)數(shù)也是數(shù)字啊,為什么會(huì)匹配不上呢?


正在回答

3 回答

可以看下這個(gè)

http://www.cnblogs.com/include/archive/2011/12/09/2307905.html


0 回復(fù) 有任何疑惑可以回復(fù)我~

1.加了雙中括號(hào)[[ ]]以后,在[[和]]之間所有的字符都不會(huì)發(fā)生文件名擴(kuò)展或者單詞分割,但是會(huì)發(fā)生參數(shù)擴(kuò)展和命令替換,bash把雙中括號(hào)中的表達(dá)式看作一個(gè)單獨(dú)的元素,并返回一個(gè)退出狀態(tài)碼。

在[[和]]之間支持字符串的模式匹配,使用=~操作符時(shí)甚至支持shell的正則表達(dá)式。

2.簡(jiǎn)單來說,=~ 就是匹配正則表達(dá)式用的。

3.你的命令有問題if [[ ! ${execshell =~ ^[0-9]+} ?]],這里大括號(hào)錯(cuò)誤了,應(yīng)該是這樣if [[ ! ${execshell} =~ ^[0-9]+ ?]],大括號(hào)是在execshell兩邊的,而且命令里面有!呀,表示的取反,輸入11111后命令就是會(huì)返回false呀


0 回復(fù) 有任何疑惑可以回復(fù)我~

第一個(gè),已經(jīng)找到答案了:

知道[[]]的意思了,if [[]]中引用變量不用加 雙引號(hào)(")了,而if[]中變量必須加雙引號(hào),如if[ -n "$test" ],不然一些特殊的地方,會(huì)出現(xiàn)問題的:

例如:

read -p "Please input number :" execshell

teset=$(echo $execshell | sed 's/[0-9]//g')

if [[ -n $test ]];then

#這里寫成 if [ -n $test ] 和 if [ -n "$test" ] && if [[ -n $test ]] 效果是不一樣的。

exit 1

else

exit 0

fi

這里如果寫成if [ -n $test ],鍵盤輸入: 0 , 然后用echo $? 會(huì)輸出 1 (按程序來說不應(yīng)該如此,如果是輸入0的話,test的值應(yīng)該為空才是,$?應(yīng)該輸出0才對(duì),所以像if [ -n ?$test ]這樣寫不對(duì),引用變量在[]中,必須加雙引號(hào),或者用[[]]可以不加雙引號(hào)),而寫成 if [ -n "$test" ] 或者 if [[ -n $test ]],鍵盤輸入0,然后用echo $? 才會(huì)輸出 0,這樣才會(huì)達(dá)成程序的要求。

第三個(gè),是我看漏了:

^[0-9]+ 代表的是開頭的字符最少一個(gè)是數(shù)字

但是我輸入11111,也會(huì)匹配不上,正則表達(dá)式不是包含匹配的嗎,11111開頭的第一個(gè)數(shù)也是數(shù)字啊,為什么會(huì)匹配不上呢??

沒看到elif 后面的語句,說的是如果鍵盤輸入的數(shù)字大于文件數(shù)就退出,所以如果輸入11111確實(shí)匹配上了,但是因?yàn)榇笥谖募倲?shù)所以退出了。


但是:第二個(gè) =~ 還是沒搞懂是什么意思????

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

關(guān)于 if [[ ! ${execshell =~ ^[0-9]+} ]] 有幾點(diǎn)不清楚的地方?

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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