This chapter documents the coding style used in live systems.
● Non usare sintassi o semantiche mirate alla shell Bash. Ad esempio l'uso di costrutti array.
● Utilizzare solo il sottoinsieme POSIX - ad esempio, usare $(foo) invece di `foo`.
● È possibile verificare i propri script con “sh -n” e “checkbashisms”.
Assicurarsi che tutto il codice giri con 'set -e'.
● Usare sempre i tab piuttosto che gli spazi.
● Generalmente le righe sono composte da un massimo di 80 caratteri.
● Utilizzare lo “stile Linux” per le interruzioni di riga:
Sbagliato:
if foo; then
bar
fi Corretto:
if foo
then
bar
fi ● Lo stesso vale per le funzioni:
Sbagliato:
Foo () {
bar
} Corretto:
Foo ()
{
bar
} ● Le variabili vanno sempre scritte in maiuscolo.
● Le variabili usate in live-build iniziano sempre con il prefisso LB_.
● Le variabili interne temporanee in live-build dovrebbero iniziare con il prefisso \_LB_.
● Le variabili locali iniziano con il prefisso live-build \_\_LB_.
● Le variabili in live-config relative ai parametri di avvio iniziano con LIVE_.
● Tutte le altre variabili in live-config iniziano con il prefisso _.
● Intorno alle variabili utilizzare le graffe; ad esempio scrivere ${FOO} invece di $FOO.
● Proteggere sempre le variabili con le virgolette per rispettare potenziali spaziature: scrivere “${FOO}” e non ${FOO}.
● Per coerenza usare sempre le virgolette quando si assegnano valori alle variabili:
Sbagliato:
FOO=bar
Corretto:
FOO="bar"
● Utilizzando variabili multiple, quotare l'intera espressione:
Sbagliato:
if [ -f "${FOO}"/foo/"${BAR}"/bar ]
then
foobar
fi Corretto:
if [ -f "${FOO}/foo/${BAR}/bar" ]
then
foobar
fi
● Per le chiamate a sed utilizzare “|” (senza virgolette intorno) come separatore, ad esempio “sed -e 's|foo|bar|'” (senza "").
● Non utilizzare il comando test per prove o confronti, usare “[” “]” (senza ““); ad esempio ”if [ -x /bin/foo ]; ...“ e non ”if test -x /bin/foo; ...”.
● Ove possibile utilizzare case invece di test, essendo più facile da leggere e più veloce in esecuzione.
● Per le funzioni utilizzare nomi che iniziano con la maiuscola per limitare i problemi con le variabili d'ambiente dell'utente.
≅ SiSU Spine ፨ (object numbering & object search)
(web 1993, object numbering 1997, object search 2002 ...) 2026