Bash
Bash - 什麼aeiou一個e一世○你aeiou在[=[=[ =~] 表達?
我是 unix 的新手,我正在嘗試學習 bash 語言,當我進入“測試表達式”時,我發現了這個:
[[ "whatever" =~ h[aeiou] ]]
我已經閱讀了這個問題的答案,所以我了解運算符 =~ 的作用。執行上一條命令後,輸出
echo $?
is0
,表示滿足裡面的條件[[ ]]
。相反,如果我輸入[[ "whatever" =~ h[sdfghjkl] ]]
的輸出
echo $?
是1
,所以不滿足條件。所以,我想知道
h[aeiou]
andh[sdfghjkl]
是什麼。表達式中是否h
有預定義函式[[ ]]
?如果是這樣,它在做什麼?如果不是,那麼h[aeiou]
實際上h{sdfghjkl]
是什麼?謝謝。
就像它在另一篇文章中所說的
=~
那樣,進行模式匹配,右側操作數是正則表達式(正則表達式)。中的括號
h[aeiou]
是正則表達式語法的一部分,那裡沒有命名函式。h[aeiou]
, 匹配 anh
,然後匹配aeiou
, 所以whatever
匹配,因為它包含 anh
後跟 ana
。您將聽到有關正則表達式的資訊,因此可能值得對其進行一些研究:
(維基百科頁面似乎也有正式的細節,不要太著迷。)