${testmystring}我的.sh脚本中有一个字符串,我想检查这个字符串是否包含另一个字符串.
if [[ ${testmystring} doesNotContain *"c0"* ]];then
# testmystring does not contain c0
fi
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做,即什么是NotContain应该是什么?
cyc*_*hoi 87
使用!=.
if [[ ${testmystring} != *"c0"* ]];then
# testmystring does not contain c0
fi
Run Code Online (Sandbox Code Playgroud)
有关help [[更多信息,请参阅
小智 6
正如mainframer所说,你可以使用grep,但我会使用退出状态进行测试,试试这个:
#!/bin/bash
# Test if anotherstring is contained in teststring
teststring="put you string here"
anotherstring="string"
echo ${teststring} | grep --quiet "${anotherstring}"
# Exit status 0 means anotherstring was found
# Exit status 1 means anotherstring was not found
if [ $? = 1 ]
then
echo "$anotherstring was not found"
fi
Run Code Online (Sandbox Code Playgroud)
小智 6
Bash 允许您使用 =~ 来测试是否包含子字符串。因此,使用 negate 将允许进行相反的测试。
fullstring="123asdf123"
substringA=asdf
substringB=gdsaf
# test for contains asdf, gdsaf and for NOT CONTAINS gdsaf
[[ $fullstring =~ $substring ]] && echo "found substring $substring in $fullstring"
[[ $fullstring =~ $substringB ]] && echo "found substring $substringB in $fullstring" || echo "failed to find"
[[ ! $fullstring =~ $substringB ]] && echo "did not find substring $substringB in $fullstring"
Run Code Online (Sandbox Code Playgroud)