Shell判斷字串包含關係的方法小結
阿新 • • 發佈:2019-01-26
用Shell指令碼的編寫中,常用到字串包含關係的判斷。
利用grep查詢
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的部分,如果結果相等說明包含,反之不包含。