:B~ Estil de Codi 1~coding-style Estil de Codi En aquest capítol es documenta l'estil de codi utilitzat a live systems. 2~ Compatibilitat _* No utilitzar una sintaxi o semàntica que sigui exclusiva de l'intèrpret d'ordres Bash. Per exemple, l'ús dels arrays. _* Utilitzar només el subconjunt POSIX - per exemple, utilitzar $(foo) en lloc de `foo`. _* Es pot comprovar els scripts amb 'sh -n' i 'checkbashisms'. _* Assegurar-se que tot el codi funciona amb 'set -e'. 2~ Indentació _* Utilitzar sempre tabuladors en lloc d'espais. 2~ Ajust de línia _* En general, les línies són de 80 caràcters com a màxim. _* Utilitzar "l'estil Linux" de salts de línia: Mal: code{ if foo; then bar fi }code Bé: code{ if foo then bar fi }code _* El mateix val per a les funcions: Mal: code{ Foo () { bar } }code Bé: code{ Foo () { bar } }code 2~ Variables _* Les variables van sempre en majúscules. _* Les variables que s'utilitzen a live-build sempre comencen amb el prefix #{LB_}# _* Les variables temporals internes de live-build comencen amb el prefix #{\_LB_}# _* Les variables locals comencen amb el prefix live-build #{\_\_LB_}# _* Les variables en relació a un paràmetre d'arrencada de live-config comencen amb #{LIVE_}#. _* Totes les altres variables de live-config comencen amb el prefix #{_}# _* Utilitzar claus al voltant de les variables, per exemple, escriure #{${FOO}}# en lloc de #{$FOO}#. _* Protegir sempre les variables amb cometes per a respectar els espais en blanc potencials: escriure #{"${FOO}"}# no #{${FOO}}#. _* Per raons de coherència, utilitzar sempre cometes al assignar valors a les variables: Mal: code{ FOO=bar }code Bé: code{ FOO="bar" }code _* Si s'utilitzen múltiples variables, posar cometes a l'expressió completa: Mal: code{ if [ -f "${FOO}"/foo/"${BAR}"/bar ] then foobar fi }code Bé: code{ if [ -f "${FOO}/foo/${BAR}/bar" ] then foobar fi }code 2~ Miscel·lània _* Utilitzar "#{|}#" (sense les cometes) com separador en l'ús de sed, per exemple, "#{sed -e 's|foo|bar|'}#" (sense ""). _* No utilitzar l'ordre #{test}# per a fer comparacions o tests, utilitzar "#{[}#" "#{]}#" (sense ""); per exemple, "#{if [ -x /bin/foo ]; ...}#" i no "#{if test -x /bin/foo; ...}#". _* Utilitzar #{case}# sempre que sigui possible en lloc de #{test}#, ja que és més fàcil de llegir i més ràpid en l'execució. _* Fer servir noms en majúscula per a les funcions per evitar conflictes amb l'entorn dels usuaris.