【问题标题】:What is the meaning of `//` in Bash parameter expansions?Bash参数扩展中的`//`是什么意思?
【发布时间】:2016-01-14 12:01:38
【问题描述】:

此命令中的//,/ 是什么意思?

echo ${foo//,/}

【问题讨论】:

    标签: bash


    【解决方案1】:

    来自bash(1) 手册页 (http://linux.die.net/man/1/bash):

    ${parameter/pattern/string}

    模式替换。该模式被扩展以产生一个模式,就像在路径名扩展中一样。参数被扩展,模式与其值的最长匹配被替换为字符串。如果pattern 以/ 开头,则pattern 的所有匹配都被替换为字符串。通常只替换第一场比赛。如果pattern以#开头,则必须匹配参数扩展值的开头。如果模式以% 开头,则它必须匹配参数扩展值的末尾。如果 string 为 null,则删除模式匹配项,并且可以省略以下模式 /。如果参数是@ 或*,则对每个位置参数依次进行替换操作,展开是结果列表。如果 parameter 是下标为@ 或* 的数组变量,则对数组的每个成员依次进行替换操作,展开就是结果列表。

    也就是说,${something//,/} 扩展为 $something,并删除了所有出现的 ,。

    【讨论】:

    • OK - 我明白了:“如果模式以 / 开头,模式的所有匹配项都将替换为字符串。”
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 2021-04-23
    • 2017-06-29
    • 2013-12-13
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2012-01-20
    相关资源
    最近更新 更多