我在 shell 中有一个奇怪的行为。
当我尝试将正则表达式中的“_”与其十六进制代码匹配时,它可以工作,但不能与“(”。
$ regex1=$'\x5f'
$ pattern1='_'
$ if [[ $pattern1 =~ $regex1 ]]; then echo yes; else echo no; fi
yes
$ regex2=$'\x28'
$ pattern2='('
$ if [[ $pattern2 =~ $regex2 ]]; then echo yes; else echo no; fi
no
Run Code Online (Sandbox Code Playgroud)
你能解释一下这种行为吗?