簡體   English   中英

Bash:模式匹配/文件名擴展

[英]Bash: Pattern Matching/Filename Expansion

因此,我目前傾向於使用Bash腳本,並且對模式匹配和文件名擴展之間的區別感到困惑。

Bash參考手冊》顯示:

拆分單詞后,除非-f' option has been set (see section 4.3.1 The Set Builtin), Bash scans each word for the characters ,否則-f' option has been set (see section 4.3.1 The Set Builtin), Bash scans each word for the characters *' -f' option has been set (see section 4.3.1 The Set Builtin), Bash scans each word for the characters ?', and ['。 如果出現這些字符之一,則將該單詞視為一個模式,並替換為與該模式匹配的按字母順序排序的文件名列表。

對我來說,這表明以下內容可能不應該執行我們想要的操作:

if [[ $a == [cb]at* ]] ; then ...

在這種情況下, [cb]at*不會擴展到上面引號所示的以catbat開頭的文件列表,但其作用更像是一個非常有限的正則表達式。 為什么? 字符*?[何時充當正則表達式,而不是擴展為當前目錄中的匹配文件?

bash[[ ... ]]的標記進行不同的解釋。 這是一個功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM