这个bash参数扩展语法的含义是什么?

时间:2018-09-26 21:57:51

标签: bash

golang GOPATH documentation中,它指示您将以下内容添加到bash路径中:

${GOPATH//://bin:}/bin

//://bin:在这里是什么意思?

$GOPATH的求值结果与${GOPATH//://bin:}

相同

我的第一个猜测是,它以某种方式扩展到具有$GOPATH子目录的/bin的所有子目录中,但事实并非如此。我在目录$ GOPATH中添加了一个带有/bin目录的子目录,上面的表达式不包含这些子目录。

我在联机帮助页中搜索了bash,但没有看到任何提示。

1 个答案:

答案 0 :(得分:0)

man bash在“参数扩展”下说:

  

${parameter/pattern/string}

     

模式替换。扩展模式以产生一个模式,就像                 路径名扩展。参数被扩展,且模式的最长匹配项为                 其值将替换为字符串。如果pattern以/开头,则所有pattern匹配项都将替换为字符串。通常只替换第一个匹配项。

例如

$ GOPATH=a:b:c
$ echo ${GOPATH//://bin:}
a/bin:b/bin:c