我一直在苦苦掙扎幾個小時。這是爲什麼發生?bash中的正則表達式:單詞類不生成匹配
$ if [[ "test" =~ \w+ ]]; then echo "yes"; else echo "no"; fi
no
$ if [[ "t" =~ \w+ ]]; then echo "yes"; else echo "no"; fi
no
$ if [[ "w" =~ \w+ ]]; then echo "yes"; else echo "no"; fi
yes
$ if [[ "wwwww" =~ \w+ ]]; then echo "yes"; else echo "no"; fi
yes
就好像逃避的反斜槓沒有任何作用。爲什麼?我注意到包裝在引號中的正則表達式沒有幫助:
$ if [[ "test" =~ "\w+" ]]; then echo "yes"; else echo "no"; fi
no
如果它的事項,這條線是在bash功能,從.sh
文件來源和運行的zsh。
'\ w'字符類在bash中不存在。 –