You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Bash脚本判断变量var内容是否匹配以ABC结尾的字符串?

在Bash中判断变量是否以ABC结尾的几种方法

嘿,刚好我经常处理这类Bash字符串匹配的需求,给你分享几个实用的方法:

方法1:使用正则表达式匹配(现代Bash推荐)

如果你的Bash版本是3.0及以上,用[[ ]]结合正则表达式是最灵活的方式,$符号表示匹配字符串的结尾:

#!/bin/bash

var="XYZABC"  # 可以替换成你实际的变量值

if [[ $var =~ ABC$ ]]; then
    echo "变量var的内容是以ABC结尾的!"
else
    echo "变量var的内容不是以ABC结尾的。"
fi

解释:=~是Bash里的正则匹配操作符,ABC$明确指定要匹配以ABC结尾的字符串。

方法2:使用case语句(兼容性拉满)

如果需要兼容一些老旧的shell环境,case语句是更稳妥的选择,它支持通配符匹配:

#!/bin/bash

var="123ABC"

case "$var" in
    *ABC) echo "变量var的内容是以ABC结尾的!" ;;
    *) echo "变量var的内容不是以ABC结尾的。" ;;
esac

解释:*ABC里的*代表任意长度的任意字符(包括空字符),只要最后三位是ABC就会匹配成功。

方法3:使用通配符直接匹配(最简单直观)

如果只是单纯判断后缀,不需要复杂正则,直接用==结合通配符就行,写法更简洁:

#!/bin/bash

var="TESTABC"

if [[ $var == *ABC ]]; then
    echo "变量var的内容是以ABC结尾的!"
else
    echo "变量var的内容不是以ABC结尾的。"
fi

这个方法和正则的效果一样,但语法更简单,适合快速实现简单的后缀判断。

你可以根据自己的环境和需求选其中一种,亲测都能用哦!

内容的提问来源于stack exchange,提问作者Antonio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:00:19