0

我尝试使用二元运算符来使用正则表达式功能,

   [[ wwwebhost@all =~ "^.+@.+$" ]]

不在 bash 4.2 中工作,在 bash 3.2 中工作

但这适用于 bash 4.2(去掉双引号):

   [[ wwwebhost@all =~ ^.+@.+$ ]]

谁能解释一下?

4

1 回答 1

1

=~在 bash 4 中(实际上我认为这是在 3.2 中添加的,但可能没有)中的or==运算符右侧的引号[[...]]告诉bash进行简单的字符串比较而不是正则表达式匹配。您可能认为这不会是显式的“嘿,做一个正则表达式匹配!”的情况。运算符=~,但它是。

于 2012-11-19T22:45:18.003 回答