shell Bash如何检查字符串是否包含'*'?[duplicate]

8e2ybdfx  于 2022-11-16  发布在  Shell
关注(0)|答案(2)|浏览(118)

此问题在此处已有答案

How to check if string contains characters in regex pattern in shell?(3个答案)
上个月关门了。
如何检查bash中的字符串是否包含*。因为*是一个特殊字符?

f4t66c6m

f4t66c6m1#

if [[ $string == *"*"* ]]; then echo "string contains asterisk"; fi

在双大括号中,==运算符执行 * 模式匹配 *。模式的带引号部分作为文字字符串处理。
对于正则表达式,*在括号表达式中不是特殊的,或者当被引用时:

if [[ $string =~ [*] ]]; then echo "string contains asterisk"; fi
if [[ $string =~ "*" ]]; then echo "string contains asterisk"; fi
chy5wohz

chy5wohz2#

如果需要检查文件中的字符串是否包含“*",可以使用grep "\*" filename
由于*是特殊字符,因此需要使用转义字符\

相关问题