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