Me encuentro con muchos scripts de shell con variables en mayúsculas, y siempre he pensado que hay un malentendido grave con eso. Según tengo entendido, por convención (y quizás por necesidad hace mucho tiempo), las variables de entorno están en mayúsculas.Corregir bash y mayúsculas de variable de script shell
Pero en entornos de scripting modernos como Bash, siempre he preferido la convención de nombres de minúsculas para variables temporales, y los de mayúsculas solo para variables exportadas (es decir, entorno). Por ejemplo:
#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"
Eso siempre ha sido mi opinión sobre las cosas. ¿Hay alguna fuente autorizada que esté de acuerdo o en desacuerdo con este enfoque, o es puramente una cuestión de estilo?
+1. Buen punto sobre la sobreescritura accidental.Olvidé mencionarlo, pero ahora que lo mencionas, creo que decidí usar minúsculas porque leí o escuché sobre ese problema. – JasonSmith
Pensé que la razón principal para usar nombres de variables en mayúsculas era evitar conflictos con los comandos de la shell. Hace poco, el nombre de host de uno de nuestros servidores se cambió accidentalmente a '=' porque un script usaba una variable 'nombre de host'. – ThisSuitIsBlackNot
@ThisSuitIsBlackNot Ignorando el código de mierda, las variables tienen como prefijo un dólar cuando se expanden y se usan en un lugar donde no se pueden confundir con un nombre de comando cuando no lo están. Obviamente, hacer hostname = moo te causará problemas. No porque esté utilizando un "nombre de host" en minúsculas, sino porque no está utilizando la sintaxis de asignación correcta. La tarea se realiza con hostname = moo, sin espacios. Suponiendo que el código es correcto, no tiene que preocuparse por nombres de variables que entren en conflicto con los nombres de los comandos. – lhunath