• 搜索
  • 夜间模式
    ©2026  依刻学习 Theme by OneBlog

    依刻学习博客

    搜索
    标签
  • 首页>
  • 学习的一天>
  • 正文
  • bash变量拓展

    2025年06月11日 18 阅读 0 评论 2106 字

    前言

    变量拓展

    实践

    参数拓展实例内涵
    基本拓展${TMP}普通变量
    TMP="ABC"
    间接引用${!TMP}间接引用
    TMP=JJC
    JJC="ABC"
    变量名搜索${!TMP*}查看以TMP开头的变量名
    TMPA='A' TMPB='B' TMPC='C'
    默认值${TMP:-test}<br />${TMP-test}
    ${TMP:=test}<br />${TMP=test}
    TMP非空则TMP赋值,否则使用test赋值
    -与=不同在在TMP为空时,=会将test赋值给TMP.而-不会
    -与= 当TMP不存在时赋值
    :-与:= 当TMP不存在或空时赋值
    空值错误${TMP:?tip}<br />${TMP?tip}:当TMP不存在时,显示tip
    :?当TMP不存在或空时显示
    非空替换${TMP:+tip}<br />${TMP+tip}:+ TMP非空则赋值tip,否则就是空
    + TMP不存在时赋值tip,否则为空
    截取${TMP:N1:N2}从N1开始截取N2个字符,如果没有N2则到末尾
    如果参数为@则是位置参数个数
    字符串移除${TMP#word}<br />${TMP##word}
    ${TMP%word}<br />${TMP%%word}
    #从头开始删除word,最短匹配
    ##从头开始删除word,最长匹配
    %从尾开始删除word,最从短匹配
    %%从尾开始删除word,最长匹配
    删除匹配到的字符,返回剩下的,常用于获取路径
    替换${TMP/aa/bb}<br />${TMP//aa/bb}
    ${TMP/aa}<br />${TMP//aa}
    /+/ 替换第一个aa为bb
    //+/ 替换所有aa为bb
    / 替换第一个aa为空
    // 替换所有的aa为空
    大小写${TMP^}<br />${TMP^^}
    ${TMP,}<br />${TMP,,}
    第一个字符大写
    全部大写
    第一个字符小写
    全部小写

    :exclamation:在替换时,字符串下标是从0开始,而数组(@位置参数列表)下标是从1开始

    echo "Database URL is: ${DATABASE_URL:?Error: DATABASE_URL must be set}"

    补:

    特殊参数内涵
    $0脚本本身名(具体看执行时)
    $@所有参数(整体字符串)
    $*所有参数(独立数组)
    $#参数数量
    本文著作权归作者 [ wymm ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.021 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。