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}")"
}
我在这里找到了它:
https://github.com/kubernetes/kubernetes/blob/master/hack/local-up-cluster.sh
答案 0 :(得分:12)
::
只是功能名称的 命名约定 。是一种编码风格,例如snake_case或CamelCase
shell样式中函数名称的约定通常是:
小写,带下划线以分隔单词。独立的图书馆 用::。在函数名称后面需要括号。关键字 函数是可选的,但必须始终使用 项目
您可以查看here。
答案 1 :(得分:1)
没什么,这些冒号显然属于命令名称的一部分。您可以通过在名称中创建并运行带有:
的命令来验证自己。默认情况下,shell会自动显示它们,并且它们完全合法。
答案 2 :(得分:1)
虽然看起来Bash允许将冒号放在函数名中,this behaviour is not standardized by POSIX。
函数名称应包含the portable set的下划线,数字和字母。