我想知道在bash的if子句中使用正则表达式的一般规则?
这是一个例子
$ gg=svm-grid-ch
$ if [[ $gg == *grid* ]] ; then echo $gg; fi
svm-grid-ch
$ if [[ $gg == ^....grid* ]] ; then echo $gg; fi
$ if [[ $gg == ....grid* ]] ; then echo $gg; fi
$ if [[ $gg == s...grid* ]] ; then echo $gg; fi
$
Run Code Online (Sandbox Code Playgroud)
为什么最后三个不匹配?
希望你能尽可能多地给出一般规则,而不仅仅是这个例子.
我的程序启动一些服务并将其输出存储在tmp变量中,如果它以FATAL关键字开头,我想匹配变量的内容吗?如果它包含我将Port in use使用echo命令打印
例如,如果tmp包含FATAL: Exception in startup, exiting.
我可以通过以下方式完成sed:echo $tmp | sed 's/^FATAL.*/"Port in use"/'
但我想使用内置if来匹配模式.如何使用shell内置功能来匹配REGEX?