[問題] script 問題

看板Linux作者 (shadow)時間11年前 (2014/05/28 16:36), 編輯推噓5(504)
留言9則, 3人參與, 最新討論串1/1
各位前輩好 小弟一次發文如果有不符合規範的地方再請炮小力一點 小弟最近因為工作需要在網路上找到一段程式碼但其中有幾個地方不太懂 查了GOOGLE大師也查不太到 if ! [[ $OCTET =~ ^[0-9]+$ ]]; then 這一個判斷式 Q1 if後面接驚嘆號為什麼意思 Q2 =~ ^[0-9]+$這一段又該做何解釋,=~ 及^[0-9]及+$各代表什麼含意 感謝各位前輩指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.245.241.180 ※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1401266216.A.4A9.html

05/28 17:31, , 1F
像是shell的正則test,功能是看變數內容是否全數字
05/28 17:31, 1F

05/28 17:32, , 2F
先確定是哪種語言 如果是shell就查相應shell的test語句
05/28 17:32, 2F

05/28 17:48, , 3F
謝謝指點,我再往這方面查詢
05/28 17:48, 3F

05/29 09:25, , 4F
看到兩個[[這是bash專有語法
05/29 09:25, 4F

05/29 09:29, , 5F
[[裡面支援擴充版正規(ERE)
05/29 09:29, 5F

05/29 09:30, , 6F
而=~即是採ERE比對,且ERE pattern寫在右邊
05/29 09:30, 6F

05/29 09:33, , 7F
這裡的ERE pattern: "^[0-9]+$"表一整行都是0到9的字元,且
05/29 09:33, 7F

05/29 09:33, , 8F
長度為1以上
05/29 09:33, 8F

05/29 09:34, , 9F
if 後面的 ! 則是將判斷結果反向
05/29 09:34, 9F
文章代碼(AID): #1JXQ0eIf (Linux)
文章代碼(AID): #1JXQ0eIf (Linux)