Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用以下内容来确定 Bash(版本 3.2.25)shell 脚本中的 $mainString 中是否存在任一子字符串:
if [[ $mainString = *cat* || $mainSubstring = *blue cheese* ]]; then echo "FOUND" else echo "NOT FOUND" fi
但是由于“蓝纹奶酪”中的空格,我不断收到以下错误。你如何处理子字符串中的空格?
您可以逃离空间:
$mainSubString = *blue\ cheese*
或引用非通配符部分,其中一个例子是
$mainSubString = *'blue cheese'*
通常,最好将模式存储在变量中,以简化引用并使[[...]]表达式更简洁。请注意,您不能引用参数扩展,正如 glenn jackman 在他的评论中指出的那样。
[[...]]
pattern="*blue cheese*" if [[ $mainString = *cat* || $mainSubstring = $pattern ]]; then