Background
网上的方法有很多种,眼花缭乱,弱水三千,只取一瓢,这里使用=~方法实现。
1、实现效果
2、源码 contains.sh
#!/bin/bash
# 大小写转换
function toggle_case() {
str_lower='a-z'
str_upper='A-Z'
msg='Please input param 【<str> [lower|upper]】'
# 第一个参数是所要转化的字符串
if [[ -z $1 ]]; then
echo $msg
exit 1
# 第二个参数是转换成大、小写,默认转换成小写
elif [[ -z $2 || $2 = "lower" ]]; then
echo "$1" | tr $str_upper $str_lower
# 转换成大写
elif [[ $2 = "upper" ]]; then
echo "$1" | tr $str_lower $str_upper
else
echo $msg
exit 1
fi
}
# 判断一个字符串是否包含另一个字符串,可以指定是否忽略大小写,默认不忽略大小写
function is_contains() {
# 源字符串
str_src=$1
# 被包含的字符串
str_dst=$2
# 是否忽略大小写
is_ignore=$3
# 提示信息
msg='Please input param 【<str_src> <str_dst> [true|false]】'
if [[ -z $str_src || -z $str_dst ]]; then
echo $msg
exit 1
fi
# 忽略大小写
if [[ $is_ignore = 'true' ]]; then
str_src=$(toggle_case "$str_src")
str_dst=$(toggle_case "$str_dst")
fi
# 判断
if [[ "$str_src" =~ "$str_dst" ]]; then
echo 'true'
else
echo 'false'
fi
}
# 输出结果
echo $(is_contains "$1" "$2" "$3")