我正在閱讀this教程,並且我遇到了bash腳本使用[...]作爲通配符字符。那麼在bash腳本中究竟是什麼?bash腳本代表什麼?
回答
這是一種正則表達式式的字符匹配語法;從Bash Reference Manual,§3.5.8.1 (Pattern Matching):
[...]
匹配封閉字符中的任何一個。用連字符分隔的一對字符表示範圍表達式;任何使用當前語言環境的整理順序和字符集在這兩個字符之間進行排序的字符(包括這兩個字符)將進行匹配。如果‘[’
之後的第一個字符是‘!’
或‘^’
,則不匹配任何未包圍的字符。 A‘−’
可以通過將其包括爲集合中的第一個或最後一個字符來匹配。 A‘]’
可以通過將它包括爲集合中的第一個字符來匹配。範圍表達式中字符的排序順序由當前語言環境和shell變量的值(如果已設置)確定。例如,在默認的C語言環境中,
‘[a-dx-z]’
等同於'[abcdxyz]'。許多區域設置按字典順序對字符進行排序,在這些區域‘[a-dx-z]’
通常不等同於‘[abcdxyz]’
;例如,它可能相當於‘[aBbCcDdxXyYz]’
。要獲得括號表達式中範圍的傳統解釋,可以通過將LC_COLLATE
或LC_ALL
環境變量設置爲值‘C’
來強制使用C語言環境。
alnum alpha ascii blank cntrl digit graph lower
print punct space upper word xdigit
字符類匹配:
在
‘[’
和‘]’
,字符類可以使用語法[:class:]
,其中類是在POSIX標準中定義的下列類的一個來指定任何屬於該類的字符。單詞字符類匹配字母,數字和字符‘_’
。在
‘[’
和‘]’
,一個等價類可以使用語法[=c=]
,它匹配具有相同的排序規則重量的所有字符(如由當前區域中定義)作爲字符c指定。在
‘[’
和‘]’
之內,語法[.symbol.]
與整理符號符號相匹配。
(強調增加了最常見的使用模式)
它在本教程中用於討論除了globbing以外的正則表達式('*'
和'?'
)。例如[a-z]
正則表達式將匹配一個小寫字符。
其實,什麼是通配符是[abc]
例如。它匹配三個字母之一。
- 1. bash腳本是什麼:= for?
- 2. Bash腳本:#!/ bin/bash是什麼意思?
- 3. $ *和*在bash腳本中究竟代表什麼?
- 4. ' - '在bash中代表什麼?
- 5. $是什麼?和$#代表Shell腳本?
- 6. 我的bash腳本有什麼問題?
- 7. 爲什麼在這個bash腳本
- 8. 這個bash腳本有什麼問題?
- 9. 什麼意思 - 在bash腳本中?
- 10. 這個bash腳本是什麼意思
- 11. 我的bash腳本有什麼問題?
- 12. 這個bash腳本有什麼問題?
- 13. 爲什麼我的bash腳本掛起?
- 14. Bash - 記錄什麼叫我的腳本?
- 15. 什麼是EOF!在bash腳本中?
- 16. '$?'是什麼意味着在bash腳本?
- 17. 這是什麼bash腳本功能
- 18. 這個bash腳本是做什麼的?
- 19. bash腳本的以下行是什麼?
- 20. 這是什麼bash腳本代碼行意味着
- 21. 替代貓出bash腳本?
- 22. bash腳本 - > PS讀什麼命令啓動的腳本中
- 23. 這個表達式評估什麼? (bash shell腳本)
- 24. 這個bash腳本是做什麼的,它有什麼問題?
- 25. 什麼:$ {ROOT_DIR:=「。」}在bash腳本中做什麼?
- 26. bash腳本權限列表
- 27. bash腳本未能執行bash腳本
- 28. Bump版本代表什麼?
- 29. 從bash腳本
- 30. 從bash腳本