如何匹配';[默认]';在Bash测试中使用'=~';?
我试图在bash测试中匹配如何匹配';[默认]';在Bash测试中使用'=~';?,bash,shell,Bash,Shell,我试图在bash测试中匹配[default],但在bash测试中无法使其工作。在下面的测试中 $ [[ "[default]" =~ "${PATTERN}" ]] “$PATTERN的值是多少?”?我可以用grep来解决这个问题,但是相同的模式在=~测试中不起作用 $ echo "[default]" | grep '\[[^\[]\+\]' # returns 0 $ [[ "[default]" =~ '\[[^\[]\+\]' ]] # returns 1 输出: okay 可
[default]
,但在bash测试中无法使其工作。在下面的测试中
$ [[ "[default]" =~ "${PATTERN}" ]]
“$PATTERN
的值是多少?”?我可以用grep来解决这个问题,但是相同的模式在=~
测试中不起作用
$ echo "[default]" | grep '\[[^\[]\+\]' # returns 0
$ [[ "[default]" =~ '\[[^\[]\+\]' ]] # returns 1
输出:
okay
可以
输出:
okay
可以
如果将条件表达式与
[[…]]
一起使用,则不需要转义正则表达式:
[[ "[default]" =~ \[[^\[]+\] ]]
如果将条件表达式与
[[…]]
一起使用,则不需要转义正则表达式:
[[ "[default]" =~ \[[^\[]+\] ]]
不要引用
=~
的RHS。谢谢!我不知道。识别常见问题,包括不要引用=~
的RHS。谢谢!我不知道。识别常见问题,包括有趣的问题。看起来我的问题是比赛中引用的用法。这个<代码>[“[默认值]”=~“${PATTERN}]]&&echo正常…不起作用。很有趣。看起来我的问题是比赛中引用的用法。这个<代码>[“[默认值]”=~“${PATTERN}]]&&echo正常…不起作用。你能解释一下这部分吗?将非常感谢您。[…]
也被引入以避免正则表达式转义。这里实际的正则表达式是\[^\[]+\]
,唯一需要的转义是\[\]
,以便将字符[]
与集合结构区分开来。您需要解释一下这个正则表达式的作用吗?请解释一下\[^\[[\[+\]]
这部分好吗?将非常感谢您。[…]
也被引入以避免正则表达式转义。这里的实际正则表达式是\[[^\[]+\]
,唯一需要的转义是\[\]
,以将字符[]
与集合结构区分开来。是否需要解释此正则表达式的作用?