:B~ Styl Kodowania 1~coding-style Styl Kodowania Rozdział ten dokumentuje styl kodowania używany w systemach live. 2~ Kompatybilność _* Nie wolno używać składni lub semantyki, które jest unikalne dla basha. Na przykład, użycie układu konstrukcji. _* Nie używaj podzbiorów POSIX'a - na przykład, używaj $(foo) zamiast`foo`. _* Możesz sprawdzić swoje skrypty używając 'sh -n' i 'checkbashisms'. _* Upewnij się, że cały kod powłoki działa z 'set-e'. 2~ Wcięcia _* Zawsze używaj tabulatorów zamiast spacji. 2~ Zawijanie _* Generalnie linie mają maksymalnie 80 znaków. _* Używaj zakończeń lini "typowych dla Linuxa": Źle: code{ if foo; then bar fi }code Dobrze: code{ if foo then bar fi }code _* To samo dotyczy funkcji: Źle: code{ Foo () { bar } }code Dobrze: code{ Foo () { bar } }code 2~ Zmienne _* Zmienne występują zawsze zapisane drukowanymi literami. _* Zmienne wykorzystane w live-build zawsze zaczynają się przedroskiem #{LB_}#. _* Wewnętrzne tymczasowe zmienne w live-build należy rozpocząć od przedrostka #{\_LB_}#. _* Lokalne zmienne zaczynają się przedrostkiem live-build'a #{\_\_LB_}#. _* Zmienne dotyczące parametrów startowych live-config zaczynają się od #{LIVE_}#. _* Wszystkie inne zmienne w live-config zacznij przedroskiem #{_}#. _* Używaj nawiasów wokół zmiennych; na przykład napisz #{${FOO}}# zamiast #{$FOO}#. _* Zawsze chroń zmienne znakami cytatu do zachowania potencjalnych białych znaków: napisz #{"${FOO}"}#, a nie #{${FOO}}#. _ * Dla zachowania spójności, należy zawsze używać znaków cytatu podczas przypisywania wartości do zmiennych: Źle: code{ FOO=bar }code Dobrze: code{ FOO="bar" }code _* Jeśli zastosowane jest wiele zmiennych, przytocz całe wyrażenie: Źle: code{ if [ -f "${FOO}"/foo/"${BAR}"/bar ] then foobar fi }code Dobrze: code{ if [ -f "${FOO}/foo/${BAR}/bar" ] then foobar fi }code 2~ Różne _* Używaj "#{|}#" (bez otaczających wyrażenie znaków cytatu) jako rozdzielacz w zapytania do sed'a, np. "#{sed -e 's|foo|bar|'}#" (bez ""). _* Nie używaj komendy #{test}# dla porównań i testów, użyj "#{[}#" "#{]}#" (bez ""); np. "#{if [ -x /bin/foo ]; ...}#" a nie "#{if test -x /bin/foo; ...}#". _ * Użyj #{case}# gdzie to jest możliwe zamiast #{test}#, jest to łatwiejsze do odczytania i szybsze w wykonaniu. _* Użyj nazw funkcji pisanych wielkimi literami, aby ograniczyć niepożądane działanie e środowisku użytkownika.