:B~ Estilo de código 1~coding-style Estilo de código En este capítulo se documenta el estilo de código utilizado en los sistemas en vivo. 2~ 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'. 2~ Sangrado _* Utilizar siempre los tabuladores en lugar de espacios. 2~ 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: code{ if foo; then bar fi }code Bien: code{ if foo then bar fi }code _* Lo mismo vale para las funciones: Mal: code{ Foo () { bar } }code Bien: code{ Foo () { bar } }code 2~ 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: code{ FOO=bar }code Bien: code{ FOO="bar" }code _* Si se utilizan múltiples variables, incluir la expresión completa entre comillas dobles: Mal: code{ if [ -f "${FOO}"/foo/"${BAR}"/bar ] then foobar fi }code Bien: code{ if [ -f "${FOO}/foo/${BAR}/bar" ] then foobar fi }code 2~ 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.