Content

shell判断变量是否含某个字符串的6种方法(shell判断变量是否包含某个字符串的方法)难以置信

文章摘要

这篇文章介绍了6种使用Shell脚本判断长字符串是否包含短字符串的方法,每种方法都基于不同的Shell特性: 1. **利用grep查找**:通过`grep`命令直接匹配字符串,简单直接。 2. **利用字符串运算符`=`=`**:直接使用`=`=`来判断字符串是否包含子字符串。 3. **利用通配符`*`**:通过`*`匹配非目标字符串部分,判断整体是否匹配。 4. **利用case in语句**:通过`case`语句进行复杂匹配,但相对其他方法较为复杂。 5. **利用替换操作`=`**:通过替换非目标部分,判断结果是否为原字符串。 6. **利用expr命令**:通过`expr`命令获取子字符串的位置,判断是否存在。 每种方法都有其适用场景和优缺点,文章强调了grep方法的简洁性,但同时也展示了其他方法的复杂性和灵活性。


目录方法一:利用grep查找方法二:利用字符串运算符方法三:利用通配符方法四:利用case in 语句方法五:利用替换方法六:利用expr,如果包含会返回位置
strA=”long string” strB=”string” result=$(echo $strA | grep “${strB}”) if [[ “$result” !=”” ]] then echo “包含” else echo “不包含” fi

先打印长字符串,然后在长字符串中 grep 查找要搜索的字符串,用变量result记录结果,如果结果不为空,说明strA包含strB。如果结果为空,说明不包含。

这个方法充分利用了grep 的特性,最为简洁。
strA=”helloworld” strB=”low” if [[ $strA=~ $strB ]] then echo “包含” else echo “不包含” fi

利用字符串运算符=~ 直接判断strA是否包含strB。(这不是比第一个方法还要简洁吗摔!)

A=”helloworld” B=”low” if [[ $A==*$B* ]] then echo “包含” else echo “不包含” fi

这个也很easy,用通配符*号代理strA中非strB的部分,如果结果相等说明包含,反之不包含。

thisString=”1 2 3 4 5″ # 源字符串 searchString=”1 2″ # 搜索字符串 case $thisString in *”$searchString”*) echo “包含”;; *) echo “不包含” ;; esac

这个就比较复杂了,case in 我还没有接触到,不过既然有比较简单的方法何必如此。

STRING_A=”helloworld” STRING_B=”low” if [[ ${STRING_A/${STRING_B}//}==$STRING_A ]] then echo “不包含” else echo “包含” fi

这个也挺复杂。

STRING1=”hello world” STRING2=”wor” if [[ `expr index “$STRING1” $STRING2`==0 ]] then echo “name dont contain $STRING2” else echo `expr index “$STRING1” $STRING2` fi

如果到stackoverflow上看其实还有更多形式,不过基本都属于以上几类了。

到此这篇关于shell判断变量是否含某个字符串的6种方法的文章就介绍到这了,更多相关shell判断字符串包含 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Shell全局变量、局部变量与特殊变量的具体使用shell脚本中整数型变量自增(加1)的几种实现Linux Shell字符串变量拼接与赋值的使用Shell特殊变量(Shell $#、$*、$@、$?、$$)的使用Shell eval通过变量获取环境变量的方法实现详解shell 变量详解shell 变量的高级用法示例一问弄懂Shell变量四大分类