处理Bash Shell脚本中的子字符串搜索中的空格

时间:2013-06-13 20:55:50

标签: bash shell substring

我正在使用以下内容来确定Bash(版本3.2.25)shell脚本中$ mainString中是否存在任何子字符串:

if [[ $mainString = *cat* || $mainSubstring = *blue cheese* ]]; then
    echo "FOUND"
else
    echo "NOT FOUND"
fi

但由于“蓝芝士”的空间,我一直收到以下错误。你如何处理子字符串中的空格?

1 个答案:

答案 0 :(得分:3)

你可以逃离这个空间:

$mainSubString = *blue\ cheese*

或引用非通配符部分,其中一个例子是

$mainSubString = *'blue cheese'*

通常,最好将模式存储在变量中,以简化引用并使[[...]]表达式更简洁。请注意,您不能引用参数扩展,正如格伦杰克曼在评论中指出的那样。

pattern="*blue cheese*"
if [[ $mainString = *cat* || $mainSubstring = $pattern ]]; then