4
代字符需要在bash腳本中轉義嗎?bash escape〜tilde
我試圖用\來逃避它,但它沒有幫助。如果我刪除〜字符,下面的代碼按預期工作。
if ! [[ "$line" =~ ^[0-9a-zA-Z-~]+$ ]]; then
echo "skipping .. $line"
continue
fi
如何在上述表達式中添加波浪號字符?
代字符需要在bash腳本中轉義嗎?bash escape〜tilde
我試圖用\來逃避它,但它沒有幫助。如果我刪除〜字符,下面的代碼按預期工作。
if ! [[ "$line" =~ ^[0-9a-zA-Z-~]+$ ]]; then
echo "skipping .. $line"
continue
fi
如何在上述表達式中添加波浪號字符?
不要放〜之後 - 。將正則表達式更改爲:
if ! [[ "$line" =~ ^[0-9a-zA-Z~-]+$ ]]; then
你會沒事的。
請看this post以獲得更多解釋爲什麼連字符可能是該類的最後一個元素。
Bash只是因爲'-'用於在'[]'中指定範圍而被混淆了,除非它是第一個或最後一個。 – 2013-03-25 23:30:27
這不僅是'bash',請參閱後添加的鏈接 – 2013-03-25 23:30:54
現在確實有道理。感謝您的鏈接 – surajz 2013-03-26 02:03:12