zoukankan      html  css  js  c++  java
  • bash shell parameter expansion

    1 ${parameter%word}和${parameter%%word}

    ${parameter%word},word是一个模式,从parameter这个参数的末尾往前开始匹配。单个%进行最短匹配,也就是说,从后往前匹配,遇到了匹配成功立马停止,删除同word模式匹配的子串,留下未匹配的部分。

    ${parameter%%word},word是一个模式,从parameter这个参数的末尾往前开始匹配。双%进行最长匹配,也就是说,从后往前匹配,遇到了匹配继续匹配,一直匹配到开头,找到最长的匹配,同样,删除同模式最长的匹配,留下未匹配的部分。

    path=/home/mem/long.file.name

    ${path%.*}    ---->  /home/mem/long.file

    ${path%%.*} ---->  /home/mem/long

    2 ${parameter#word}和${parameter##word}

    和%的区别在于,#是从parameter的开头往后匹配,也是留下不匹配的部分。另外,当个#也是最短匹配,而双#是最长匹配。

    3 这里的parameter还可以是位置参数$1,$2等

    ${1#--extractor=},这里匹配的是位置参数$1,$1从前到后匹配“--extractor=”,遇到最短匹配的--extractor=,那么删除--extractor=,返回其它部分。

    注意,这里是从开头严格开始匹配的。比如x="cb1 b1 c2"的话,${x#b1}返回的就是“cb1 b1 c2”,因为从开头开始并没有匹配到任何字符串。因为开头是c,不是b,因此没有任何匹配,因此不会删除任何子串。

    4 关于${enable-add-ons+set}

    这个称为参数扩展,使参数扩展的一种形式。Enable-add-ons是参数,扩展的时候,会去看enable-add-ons这个变量是不是set了,如果没有,那么扩展为null,如果set了,那么扩展为set。

    这个是${enable-add-ons:+set}的一部分,有了:还会检查enable-add-ons是不是null。

  • 相关阅读:
    swift关键字
    Swift开发注意点
    Mac上安装lua
    Runtime运行时机制
    ios开发中如何选择图片的加载方式
    ios开发中的静态内存分析
    loadrunner-2-9添加事务
    loadrunner-2-8HTML和URL模式
    loadrunner-2-7设置关联
    loadrunner中Windows Resource没有数据或不可用
  • 原文地址:https://www.cnblogs.com/hustdc/p/7301328.html
Copyright © 2011-2022 走看看