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

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")
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaiSaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值