bash如果[[=〜正则表达式比较不起作用?

时间:2015-02-18 10:20:31

标签: regex bash

我在变量中有一个值,可能是绝对或相对url,我需要检查它是哪一个。

我发现=~中有一个[[运算符,但我无法使其运行。我做错了什么?

url="http://test"
if [[ "$url" =~ "^http://" ]];
    then echo "absolute.";
fi;

1 个答案:

答案 0 :(得分:2)

你需要使用正则表达而不引用:

url="http://test"
if [[ "$url" =~ ^http:// ]]; then
    echo "absolute."
fi

这输出`绝对。因为正则表达式需要在较新的BASH中没有引用(在BASH v3.1之后)

或者避免正则表达式并使用glob匹配:

if [[ "$url" == "http://"* ]]; then
    echo "absolute."
fi