Qu'est-ce que le double-colon ::
dans les scripts Shell? comme ce morceau de script:
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}")"
}
Je l'ai trouvé ici:
https://github.com/kubernetes/kubernetes/blob/master/hack/local-up-cluster.sh
Le ::
est simplement unconvention de nommagepour noms de fonctions. Est-ce un style de codage tel que snake_case ou CamelCase
La convention pour noms de fonction} dans le style Shell est généralement la suivante:
Minuscules, avec des tirets bas pour séparer les mots. Bibliothèques séparées Avec ::. Les parenthèses sont obligatoires après le nom de la fonction. La fonction de mot clé Est facultative, mais doit être utilisée de manière cohérente dans tout projet .
Vous pouvez vérifier ici .
Ce n'est rien, ces deux points font apparemment partie des noms de commande. Vous pouvez vérifier vous-même en créant et en exécutant une commande avec :
dans le nom. Le Shell, par défaut, les visualisera automatiquement et tout sera parfaitement légal.
Bien qu'il semble que Bash permette de mettre des deux-points dans les noms de fonctions, ce comportement n'est pas normalisé par POSIX .
Les noms de fonction doivent comprendre des tirets bas, des chiffres et des lettres de le jeu portable .