波浪字符是否需要在 bash 脚本中进行转义?
我试图用\~ 来逃避它,但它没有帮助。如果我删除 ~ 字符,下面的代码将按预期工作。
if ! [[ "$line" =~ ^[0-9a-zA-Z-~]+$ ]]; then
echo "skipping .. $line"
continue
fi
如何在上面的表达式中添加波浪字符?
最佳答案
不要把 ~ 放在 - 之后。将正则表达式更改为:
if ! [[ "$line" =~ ^[0-9a-zA-Z~-]+$ ]]; then
你会没事的。
查看this post有关为什么 hyphen 可能是类的最后一个元素的更多解释。
关于regex - bash 逃脱 ~ 代字号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626067/