Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何匹配';[默认]';在Bash测试中使用'=~';?_Bash_Shell - Fatal编程技术网

如何匹配';[默认]';在Bash测试中使用'=~';?

如何匹配';[默认]';在Bash测试中使用'=~';?,bash,shell,Bash,Shell,我试图在bash测试中匹配[default],但在bash测试中无法使其工作。在下面的测试中 $ [[ "[default]" =~ "${PATTERN}" ]] “$PATTERN的值是多少?”?我可以用grep来解决这个问题,但是相同的模式在=~测试中不起作用 $ echo "[default]" | grep '\[[^\[]\+\]' # returns 0 $ [[ "[default]" =~ '\[[^\[]\+\]' ]] # returns 1 输出: okay 可

我试图在bash测试中匹配
[default]
,但在bash测试中无法使其工作。在下面的测试中

$ [[ "[default]" =~ "${PATTERN}" ]]
$PATTERN
的值是多少?”?我可以用grep来解决这个问题,但是相同的模式在
=~
测试中不起作用

$ echo "[default]" | grep '\[[^\[]\+\]' # returns 0
$ [[ "[default]" =~ '\[[^\[]\+\]' ]]    # returns 1
输出:

okay 可以 输出:

okay 可以
如果将条件表达式与
[[…]]
一起使用,则不需要转义正则表达式:

[[ "[default]" =~ \[[^\[]+\] ]]

如果将条件表达式与
[[…]]
一起使用,则不需要转义正则表达式:

[[ "[default]" =~ \[[^\[]+\] ]]

不要引用
=~
的RHS。谢谢!我不知道。识别常见问题,包括不要引用
=~
的RHS。谢谢!我不知道。识别常见问题,包括有趣的问题。看起来我的问题是比赛中引用的用法。这个<代码>[“[默认值]”=~“${PATTERN}]]&&echo正常…不起作用。很有趣。看起来我的问题是比赛中引用的用法。这个<代码>[“[默认值]”=~“${PATTERN}]]&&echo正常…不起作用。你能解释一下这部分吗?将非常感谢您。
[…]
也被引入以避免正则表达式转义。这里实际的正则表达式是
\[^\[]+\]
,唯一需要的转义是
\[\]
,以便将字符
[]
与集合结构区分开来。您需要解释一下这个正则表达式的作用吗?请解释一下
\[^\[[\[+\]]
这部分好吗?将非常感谢您。
[…]
也被引入以避免正则表达式转义。这里的实际正则表达式是
\[[^\[]+\]
,唯一需要的转义是
\[\]
,以将字符
[]
与集合结构区分开来。是否需要解释此正则表达式的作用?