我们经常遇到shell中需要判断字符串包含关系的场景
下面整理了常用的几种判断方法,代码示例如下:
#!/bin/bash
STR_CONTAINER="ABCDEFGabcdefg"
STR_TEST="Gabcd"
echo "STR_CONTAINER = ${STR_CONTAINER}"
echo "STR_TEST = ${STR_TEST}"
echo "STR_CONTAINER 是否包含 STR_TEST?"
# grep查找法
function test_based_grep()
{
echo -e " test_based_grep: \c"
result=$(echo $STR_CONTAINER | grep "${STR_TEST}")
if [[ "$result" != "" ]]; then
echo "包含"
else
echo "不包含!"
fi
}
# 字符串运算符
function test_based_string_operator()
{
echo -e " test_based_string_operator: \c"
if [[ $STR_CONTAINER =~ $STR_TEST ]]; then
echo "包含"
else
echo "不包含!"
fi
}
# 利用通配符
function test_based_wildcards()
{
echo -e " test_based_wildcards: \c"
if [[ $STR_CONTAINER == *$STR_TEST* ]]; then
echo "包含"
else
echo "不包含!"
fi
}
test_based_grep
test_based_string_operator
test_based_wildcards
# 执行结果示例:
STR_CONTAINER = ABCDEFGabcdefg
STR_TEST = Gabcd
STR_CONTAINER 是否包含 STR_TEST?
test_based_grep: 包含
test_based_string_operator: 包含
test_based_wildcards: 包含
【星猿科技】:在这里我们共同探索科技新趋势,分享打动人心的影视作品,从人工智能到经典电影,我们追求技术的进步,同时珍视故事的力量。欢迎关注我们,在科技与影视的精彩世界中一起遨游,发现更多未知!#探索与发现#