考虑下面的代码:
下面是我在bash shell中完成的工作。
问题是为什么第5行和第6行没有打印出“found”?
我认为我已经知道答案,但我正在寻找一个简单易懂的答案。
总之,当在=〜的右侧使用一个带双引号的变量时,这些双引号只会用于变量扩展。
以下是代码:
$ var1=bingo
$ var2=.ingo
$ if [[ "$var1" =~ $var2 ]]; then echo found; fi
found
$ if [[ $var1 =~ "$var2" ]]; then echo found; fi # line 5
$ if [[ "$var1" =~ "$var2" ]]; then echo found; fi # line 6
$ if [[ $var1 =~ $var2 ]]; then echo found; fi
found
下面是我在bash shell中完成的工作。
问题是为什么第5行和第6行没有打印出“found”?
我认为我已经知道答案,但我正在寻找一个简单易懂的答案。
总之,当在=〜的右侧使用一个带双引号的变量时,这些双引号只会用于变量扩展。
=~
右侧被引用的操作数部分将作为一个字面字符串进行匹配。 - Sean Bright