什么是双冒号::在shell脚本中?

rea*_*lin 11 bash coding-style

::shell脚本中的双冒号是什么?像这块脚本:

function guess_built_binary_path {
  local hyperkube_path=$(kube::util::find-binary "hyperkube")
  if [[ -z "${hyperkube_path}" ]]; then
    return
  fi
  echo -n "$(dirname "${hyperkube_path}")"
}
Run Code Online (Sandbox Code Playgroud)

我在这里找到了它:

https://github.com/kubernetes/kubernetes/blob/master/hack/local-up-cluster.sh

Dam*_*ero 12

::只是一个命名约定函数名.是一种编码风格,如snake_caseCamelCase

shell样式中函数名的约定通常是:

小写,带下划线以分隔单词.使用::分隔库.在函数名称后面需要括号.关键字功能是可选的,但必须在整个项目中一致地使用.

你可以在这里查看.


Mat*_*ski 5

尽管 Bash 似乎允许在函数名称中添加冒号,但POSIX 并未标准化此行为

该函数名为fname;应用程序应确保它是一个名称(请参阅 XBD名称)...。实现可能允许函数名称中的其他字符作为扩展名。

3.235 名字说的是:

仅由可移植字符集中的下划线、数字和字母组成的单词。