【发布时间】:2013-02-09 08:24:54
【问题描述】:
这是一个名为“目标”的变量
$ echo $_target
x86_64-linux-gnu
此正则表达式测试成功...
$ if [[ $_target =~ "x86_64" ]]; then echo "match"; fi
match
但它不会测试表达式是否在行首。让我将锚标记添加到正则表达式:
$ if [[ $_target =~ "^x86_64" ]]; then echo "match"; fi
$
上面的行并不表示匹配。很奇怪。
但是,如果我去掉正则表达式周围的引号,一切都很好
$ if [[ $_target =~ ^x86_64 ]]; then echo "match"; fi
match
为什么引号会影响正则表达式测试?我对上面的第二个测试不匹配感到惊讶,我的理解中缺少什么?
【问题讨论】: