Shell脚本判断字符串是否包含

Background

网上的方法有很多种,眼花缭乱,弱水三千,只取一瓢,这里使用=~方法实现。

1、实现效果

Shell脚本判断字符串是否包含_第1张图片

2、源码 contains.sh

#!/bin/bash

# 大小写转换
function toggle_case() {
    str_lower='a-z'
    str_upper='A-Z'
    msg='Please input param 【 [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 【  [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")

你可能感兴趣的:(Linux,shell,判断字符串是否包含)