4

波浪号字符是否需要在 bash 脚本中转义?

我试图用 \~ 来逃避它,但它没有帮助。如果我删除 ~ 字符,下面的代码将按预期工作。

            if ! [[ "$line" =~ ^[0-9a-zA-Z-~]+$ ]]; then
                    echo "skipping .. $line"
                    continue
            fi

如何在上述表达式中添加波浪号?

4

1 回答 1

8

不要把~放在-之后。将正则表达式更改为:

if ! [[ "$line" =~ ^[0-9a-zA-Z~-]+$ ]]; then

你会没事的。

查看这篇文章以获得更多解释为什么连字符可能是该类的最后一个元素。

于 2013-03-25T22:44:18.413 回答