bash 变量跟随#*=,##*=的含义

简介: 今天看项目的某个打包脚本,里面有这么一段写法... 刚看完的时候,我真的一脸茫然~~~

网络异常,图片无法展示
|


前言


今天看项目的某个打包脚本,里面有这么一段写法... 刚看完的时候,我真的一脸茫然~~~


代码


除了那个*#=都挺好理解的, 就是for循环,switch匹配赋值...


ARGS="$@"
echo ${ARGS}
for arg in ${ARGS}
do
    case ${arg} in
        --packageName=*)
        echo packageName: ${arg#*=}
        packageNameArg=${arg#*=}
        ;;
        --branch=*)
          echo 分支: ${arg#*=}
          branchArg="${arg#*=}"
        ;;
        --commit=*)
        echo commit: ${arg#*=}
        commitArg=${arg#*=}
        ;;
        --commitTimes=*)
        echo commitTimes: ${arg#*=}
        commitTimesArg=${arg#*=}
        ;;
        *)
        echo "未知参数 $arg"
        # unknown option
        # usage
        ;;
    esac
done


科普


搜索引擎找了许久,终于在gnu官网翻看到了...


就是起到了模式匹配的作用, # 是短模式匹配, ## 是长模式匹配


GNU文档链接: www.gnu.org/software/ba…


网络异常,图片无法展示
|


实际例子


看输出就知道了,其实很好理解

网络异常,图片无法展示
|
就是匹配第一个 = 后的内容, ## 长模式就是直接找到最后一个

网络异常,图片无法展示
|


总结


希望这个扫盲帖子可以帮到正在阅读的你~~

目录
相关文章
|
6月前
|
Shell
在Bash中检查变量是否为空的几种方法
在Bash中检查变量是否为空的几种方法
490 0
在Bash中检查变量是否为空的几种方法
|
4月前
|
机器学习/深度学习 Unix Shell
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
71 0
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-数值运算、运算符变量、测试和内容替换
【Shell编程】Shell中Bash变量-数值运算、运算符变量、测试和内容替换
56 0
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-预定义变量
【Shell编程】Shell中Bash变量-预定义变量
73 0
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-环境变量
【Shell编程】Shell中Bash变量-环境变量
57 0
|
10月前
|
机器学习/深度学习 Shell
【Shell编程】Shell中Bash变量-位置参数变量
【Shell编程】Shell中Bash变量-位置参数变量
55 0
|
10月前
|
Shell
【Shell编程】Shell中Bash变量-用户自定义变量
【Shell编程】Shell中Bash变量-用户自定义变量
49 0
|
Shell Linux 程序员
Linux Bash Shell 中变量的 5 个易错点
Linux 中的 Bash 脚本支持对变量的操作,下面将介绍 Linux Bash Shell 中关于变量的5个易错点
|
机器学习/深度学习 存储 Shell
Linux Shell编程(2) - Bash 变量
1. Bash 变量的命名规则 变量名只能包含字母、数字、下划线 变量名不能以数字作为开头 变量名区分大小写 变量名长度不超过255个字符 变量名在有效范围内必须唯一