web-dev-qa-db-fra.com

Que sont les points doubles :: dans un script shell?

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

9
reachlin

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 .

11
Damian Lattenero

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.

1
daidoji70

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 .

1