zoukankan      html  css  js  c++  java
  • Linux Shell参数替换

    Bash中的$符号的作用是参数替换,将参数名替换为参数所代表的值。对于$来说,大括号是可选的,即$A和${A}代表同一个参数。

    ${}带冒号的有下面几种表达式:

    ${parameter:-word}

    如果parameter为null或者未设置,整个参数替换表达式值为word

    ${parameter:=word}

    如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word

    ${parameter:?word}

    如果parameter为null或者未设置,则打印出错误信息。否则,整个参数替换表达式值为$parameter

    ${parameter:+word}

    如果parameter不为null或者未设置,则整个参数替换表达式值为word

    ${parameter:offset}

    ${parameter:offset:length}

    parameter的值的子字符串。

    可以理解下下面这几个例子:

    Image(2)

    ${}带!有下面几种表达式:

    ${!prefix*}

    ${!prefix@}

    将带有前缀为prefix的参数名打印出来

    ${!name[@]}

    ${!name[*]}

    这个是针对name数组的,打印出来name数组有哪些下标

    可以理解下下面这几个例子:

    Image(3)

    ${}带正则匹配的几种表达式:

    ${parameter#word}

    ${parameter##word}

    从头开始扫描word,将匹配word正则表达的字符过滤掉

    #为最短匹配,##为最长匹配

    ${parameter%word}

    ${parameter%%word}

    从尾开始扫描word,将匹配word正则表达式的字符过滤掉

    %为最短匹配,%%为最长匹配

    可以理解下面这几个例子:

    Image(4)

    ${parameter/pattern/string}

    ${parameter//pattern/string}

    将parameter对应值的pattern字符串替换成为string字符串

    /表示只替换一次

    //表示全部替换

    可以理解下面这几个例子:

    Image(5)

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    Win10或Win8下ObjectARX2015 Wizard向导创建项目失败解决方法
    对用友二次开发的初次认识
    我对asp.net管道模型的理解
    wblockCloneObjects 写块克隆的使用
    acedCommand 之使用镜像命令
    MFC之动态调用自己写的类库中的类的成员方法
    objectarx 天正的墙转梁线
    objectarx 之让用户自定义插件命令
    MFC之多字节和宽字节的总结
    MFC之使用blat发送邮件
  • 原文地址:https://www.cnblogs.com/yjf512/p/3114803.html
Copyright © 2011-2022 走看看