Ich laufe über viele Shell-Skripte mit Variablen in Großbuchstaben, und ich habe immer gedacht, dass es ein ernstes Missverständnis damit ist. Mein Verständnis ist, dass durch Konvention (und vielleicht durch Notwendigkeit vor langer Zeit) Umgebungsvariablen sind in Großbuchstaben.Korrekte Bash und Shell Skript Variable Großschreibung
Aber in modernen Scripting-Umgebungen wie Bash, habe ich immer die Konvention von Kleinbuchstaben Namen für temporäre Variablen und Großbuchstaben nur für exportierte (d. H. Umwelt) Variablen. Zum Beispiel:
#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"
Das war schon immer meine Sicht auf Dinge. Gibt es irgendwelche maßgeblichen Quellen, die diesem Ansatz zustimmen oder nicht zustimmen, oder handelt es sich lediglich um eine Frage des Stils?
+1. Guter Punkt über versehentliches Überschreiben.Ich habe vergessen zu erwähnen, aber jetzt, wo du es erwähnst, glaube ich, dass ich mich für Kleinbuchstaben entschieden habe, weil ich genau dieses Problem gelesen oder gehört habe. – JasonSmith
Ich dachte, der Hauptgrund für die Verwendung von Variablennamen in Großbuchstaben war die Vermeidung von Konflikten mit Shell-Befehlen. Wir hatten kürzlich den Hostnamen eines unserer Server versehentlich auf '=' geändert, weil ein Skript eine Variable 'Hostname' verwendet hat. – ThisSuitIsBlackNot
@ThisSuitIsBlackNot Beim Ignorieren von crappy-Code wird den Variablen ein Dollar vorangestellt, wenn sie erweitert und an einer Stelle verwendet werden, an der sie nicht mit einem Befehlsnamen verwechselt werden können, wenn dies nicht der Fall ist. Offensichtlich bringt dich Hostname = moo in Schwierigkeiten. Nicht, weil Sie einen niedrigeren "Hostnamen" verwenden, sondern weil Sie nicht die korrekte Zuordnungssyntax verwenden. Die Zuweisung erfolgt mit Hostname = moo, keine Leerzeichen. Wenn Sie den richtigen Code verwenden, müssen Sie sich keine Gedanken über Variablennamen machen, die mit Befehlsnamen in Konflikt stehen. – lhunath