En este capítulo se documenta el estilo de código utilizado en los sistemas en vivo.
15.1 Compatibilidad
No utilizar sintaxis o semántica que sea única para el intérprete de comandos Bash. Por ejemplo, el uso de arrays.
Utilizar únicamente el subconjunto POSIX - por ejemplo, usar $(foo) en lugar de `foo`.
Se puede comprobar las secuencias de comandos con 'sh -n' y 'checkbashisms'.
Asegurarse de que el código funcione con 'set -e'.
15.2 Sangrado
Utilizar siempre los tabuladores en lugar de espacios.
15.3 Ajuste de líneas
En general, las líneas contienen 80 caracteres como máximo.
Utilizar los saltos de línea al «estilo Linux»:
Mal:
if foo; then
bar
fi
Bien:
if foo
then
bar
fi
Lo mismo vale para las funciones:
Mal:
Foo () {
bar
}
Bien:
Foo ()
{
bar
}
15.4 Variables
Las variables deben escribirse siempre en letras mayúsculas.
Las variables que se utiliza en live-build siempre comienzan con el prefijo LB_
Las variables temporales internas de live-build deben comenzar con el prefijo _LB_
Las variables locales comienzan con el prefijo live-build__LB_
Las variables en relación a un parámetro de arranque en live-config comienzan con LIVE_.
Todas las demás variables de live-config comienzan con el prefijo _
Utilizar llaves para las variables, por ejemplo, escribir ${FOO} en lugar de $FOO.
Utilizar comillas dobles en las variables para evitar dejar espacios en blanco: Escribir "${FOO}" en lugar de ${FOO}.
Por motivos de coherencia, se debe utilizar siempre comillas en la asignación de valores a las variables:
Mal:
FOO=bar
Bien:
FOO="bar"
Si se utilizan múltiples variables, incluir la expresión completa entre comillas dobles:
Mal:
if [ -f "${FOO}"/foo/"${BAR}"/bar ]
then
foobar
fi
Bien:
if [ -f "${FOO}/foo/${BAR}/bar" ]
then
foobar
fi
15.5 Miscelánea
Se debe utilizar "|" (sin comillas) como separador cuando se invoque a sed, p.ej. "sed -e 's|foo|bar|'" (Pero sin las comillas "")
No se debe utilizar el comando test para hacer comparaciones o pruebas, usar "[" "]" (sin ""); p.ej. "if [ -x /bin/foo ]; ..." en lugar de "if test -x /bin/foo; ...".
Se debe utilizar case siempre que sea posible en lugar de test, ya que es más fácil de leer y más rápido en la ejecución.
Usar mayúsculas en los nombres de las funciones para evitar confusiones con el entorno de los usuarios.