【发布时间】:2016-01-14 12:01:38
【问题描述】:
此命令中的//,/ 是什么意思?
echo ${foo//,/}
【问题讨论】:
标签: bash
此命令中的//,/ 是什么意思?
echo ${foo//,/}
【问题讨论】:
标签: bash
来自bash(1) 手册页 (http://linux.die.net/man/1/bash):
${parameter/pattern/string}模式替换。该模式被扩展以产生一个模式,就像在路径名扩展中一样。参数被扩展,模式与其值的最长匹配被替换为字符串。如果pattern 以
/开头,则pattern 的所有匹配都被替换为字符串。通常只替换第一场比赛。如果pattern以#开头,则必须匹配参数扩展值的开头。如果模式以%开头,则它必须匹配参数扩展值的末尾。如果 string 为 null,则删除模式匹配项,并且可以省略以下模式/。如果参数是@或*,则对每个位置参数依次进行替换操作,展开是结果列表。如果 parameter 是下标为@或*的数组变量,则对数组的每个成员依次进行替换操作,展开就是结果列表。
也就是说,${something//,/} 扩展为 $something,并删除了所有出现的 ,。
【讨论】: