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

Posted crper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文档链接: http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

实际例子

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

就是匹配第一个 = 后的内容, ## 长模式就是直接找到最后一个

总结

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

以上是关于bash 变量跟随#*=,##*=的含义的主要内容,如果未能解决你的问题,请参考以下文章

浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释

go环境变量配置 (GOROOT和GOPATH)的区别和含义

linux 的bash变量

linux shell bash 内置变量参考

Linux Bash Shell学习笔记

bash 脚本中 $0%/* 的含义是啥?