Linux學習之bash學習之在bash中=和=~的區別

怎麼理解 bash [[]] 判斷中的 = 和 =~ 這2個判斷呢??

if [[ 23ab = *ab ]] ; then echo yes; fi

[[$a=~$b]] 是正則表達式匹配。在這種語法中,*匹配前一個字符或模式的0-n個實例。是正則表達式
if [[ 23ab =~ [0-9]{
   
   1,2}ab ]] ; then echo yes; fi

 是一個glob的模式匹配。在此語法中,*匹配任何類型的0-n個字符。 和正則還是有點區別的。https://en.wikipedia.org/wiki/Glob_(programming)

其他補充

關於 glob-style pattern 和 regualar expression 的區別:
https://stackoverflow.com/questions/23702202/what-are-the-differences-between-glob-style-pattern-and-regular-expression

http://teaching.idallen.com/cst8207/15w/notes/190_glob_patterns.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章