如何匹配 Bash 变量中的空格

如何匹配 Bash 变量中的空格

根据手册页,右侧的字符串=~被视为扩展正则表达式。我尝试了以下方法来匹配两边被空格包围的“ok”,但都不起作用。知道我做错了什么吗?也许有一个 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

注意:以下是自我回答的问题。

答案1

好吧,事实证明我们需要的是[[:space:]]而不是[:space:]。以下方法可行:

if ! [[ $RESULT =~ [[:space:]]"ok"[[:space:]] ]]; then

相关内容