根据手册页, =~右侧的string被视为扩展正则expression式。 我已经尝试了以下的事情来匹配任何一方的空白包围的“好”,但没有任何工作。 任何想法我做错了什么? 也许有一个shell选项需要启用?
if ! [[ $RESULT =~ \s"ok"\s ]]; then if ! [[ $RESULT =~ [:space:]"ok"[:space:] ]]; then if ! [[ $RESULT =~ [ \t\r\n\v\f]"ok"[ \t\r\n\v\f] ]]; then
注意:自我回答下面的问题。
好的,事实certificate我需要[[:space:]]而不是[:space:] 。 不知道为什么,但下面的作品:
if ! [[ $RESULT =~ [[:space:]"ok"[[:space:]] ]]; then
在这种情况下,你只需要一个子串匹配。
a='foo "ok" bar'; [[ $a =~ ' "ok" ' ]] && echo found