Bash

Bash - 什麼aeiou一個e一世○你aeiou在[=[=[ =~] 表達?

  • October 11, 2022

我是 unix 的新手,我正在嘗試學習 bash 語言,當我進入“測試表達式”時,我發現了這個:

[[ "whatever" =~ h[aeiou] ]]

我已經閱讀了這個問題的答案,所以我了解運算符 =~ 的作用。執行上一條命令後,輸出echo $?is 0,表示滿足裡面的條件[[ ]]。相反,如果我輸入

[[ "whatever" =~ h[sdfghjkl] ]]

的輸出echo $?1,所以不滿足條件。

所以,我想知道h[aeiou]andh[sdfghjkl]是什麼。表達式中是否h有預定義函式[[ ]]?如果是這樣,它在做什麼?如果不是,那麼h[aeiou]實際上h{sdfghjkl]是什麼?

謝謝。

就像它在另一篇文章中所說的=~那樣,進行模式匹配,右側操作數是正則表達式(正則表達式)。

中的括號h[aeiou]是正則表達式語法的一部分,那裡沒有命名函式。h[aeiou], 匹配 an h,然後匹配aeiou, 所以whatever匹配,因為它包含 anh後跟 an a

您將聽到有關正則表達式的資訊,因此可能值得對其進行一些研究:

(維基百科頁面似乎也有正式的細節,不要太著迷。)

引用自:https://unix.stackexchange.com/questions/720600