Hát maga a "then fi" 2 hibát is tartalmaz. Ebből az egyik, hogy a fi az "parancs", tehát újsor, vagy ; vagy egyéb utasításlezáró mögé írandó. És csak a második hiba, hogy a then és a fi parancsok közé kell egy harmadik parancs. Amúgy ha nem egy sorban van ez az egész, akkor ez a harmadik parancs simán lehet egy megjegyzés is. Azaz ez jó:
if parancs1
then
# parancs2
fi
Ez viszont természetesen nem jó:
if parancs1 ; then # parancs2 ; fi
Nyilván ha az utóbbi (egysorba írt) formát használod, akkor a legkönnyebb az egészet kikommentelni helyette:
# if parancs1 ; then parancs2 ; fi
vagy kicsit trükkösen használni a fent általatok is taglalt : parancsot:
if parancs1 ; then : parancs2 ; fi
(Megjegyzem az utóbbiért egy értelmes gyakvezér/projektvezető kivág a francba, annyira áttekinthetetlen lesz a kód.)
Valamint további megjegyzés, hogy ha egy if-feltétel összesen csak egy egyparancsos then ágat tartalmaz, akkor szerintem sokal olvashatóbb a
parancs1 && parancs2
forma - más kérdés, hogy volt olyan főnököm, aki ezt a rövidített formát kifejezetten ellenjavallotta.