美文网首页Shell学习笔记
Shell变量的高级用法(一)——变量替换

Shell变量的高级用法(一)——变量替换

作者: 醜捌怪 | 来源:发表于2022-01-17 16:11 被阅读0次

    变量替换

    语法 说明
    ${变量名#匹配规则} 从变量开头进行规则匹配,将符合最的数据删除
    ${变量名##匹配规则} 从变量开头进行规则匹配,将符合最的数据删除
    ${变量名%匹配规则} 从变量尾部进行规则匹配,将符合最的数据删除
    ${变量名%%匹配规则} 从变量尾部进行规则匹配,将符合最的数据删除
    ${变量名/旧字符串/新字符串} 变量内容符合旧字符串,则第一个旧字符串会被新字符串取代
    ${变量名//旧字符串/新字符串} 变量内容符合旧字符串,则全部的旧字符串会被新字符串取代

    测试

    定义一个字符串变量variable,通过不同的替换语法对变量进程替换,并输入结果。

    ➜ ~ variable="I love you, Do you love me?"

    示例1:

    ➜ ~ result1=${variable#*ov}
    ➜ ~ echo $result1
    e you, Do you love me?

    匹配规则为*ov,最短符合匹配规则的字符串为I lov

    示例2:

    ➜ ~ result2=${variable##*ov}
    ➜ ~ echo $result2
    e me?

    匹配规则为*ov,##使用贪婪匹配模式,将匹配到最长符合规则的字符串为I love you, Do you lov

    示例3:

    ➜ ~ result3=${variable%ov*}
    ➜ ~ echo $result3
    I love you, Do you l

    匹配规则为ov*,从后往前最短符合匹配规则的字符串为ov me?

    示例4:

    ➜ ~ result4=${variable%ov*}
    ➜ ~ echo $result4
    I l

    匹配规则为ov*,从后往前最短符合匹配规则的字符串为ove you, Do you lov me?

    示例5:

    ➜ ~ result5=${variable/love/LOVE}
    ➜ ~ echo $result5
    I LOVE you, Do you love me?

    将字符串love替换成大写LOVE,只会替换从开头开始第一个匹配到的love

    示例6:

    ➜ ~ result6=${variable//love/LOVE}
    ➜ ~ echo $result6
    I LOVE you, Do you LOVE me?

    将字符串love替换成大写LOVE,将匹配到的旧字符串love全部替换成新字符串LOVE

    相关文章

      网友评论

        本文标题:Shell变量的高级用法(一)——变量替换

        本文链接:https://www.haomeiwen.com/subject/pepchrtx.html