0
我正在嘗試使用包含星號的變量進行正則表達式匹配。Bash:避免雙括號正則表達式測試中的文件名擴展
Bash中的以下命令集在操作符左側的變量中使用星號進行文件名擴展。
test='part1 * part2'
[[ "$test" =~ ^(.+)\ .\ (.+)$ ]] && echo $BASH_REMATCH
結果:part1 FILE1 FILE2 part2
但它不應導致:part1 * part2
我已經搜查,搜查,但無法弄清楚爲什麼發生這種情況。
非常正確。 (通常,除非給出明確的理由,否則你應該總是*引用擴展。) –
在測試之外聲明正則表達式也是一種很好的做法,因爲它更容易閱讀(不需要轉義),b)適用於所有Bash版本(參見[這裏](http://mywiki.wooledge.org/BashGuide) /模式)在「正則表達式」下)。 –
謝謝@BenjaminW。,我更新了答案。 – owenh000