#! /bin/bash nebo #! /bin/bash/sh -e ?
/bin/bash/sh je nesmysl, takový soubor neexistuje. Ve skutečnosti řešíš dvě dilemata:
/bin/bash nebo /bin/shbash má více funkcí, ale je „nestandardní“ -- na některých systémech nemusí být nainstalovaný, a lidem, kteří ho z politických nebo technických (například miniaturní počítače s nedostatkem paměti) nemají pak nadávají když ho ve svých skriptech použiješ. To se tě ale téměř jistě netýká, a tak bych doporučil použít bash.
sh ve skutečnosti není nějaký konkrétní program, ale podle specifikace to může být libovolný program, který implementuje nějakou základní funkcionalitu. Na Ubuntu to je defaultně dash, ale dá se to změnit (dpkg-reconfigure dash) třeba na bash. Osobně miluji bash natolik :-), že na svým počítačích mám /bin/sh nastavený na bash.
jestli tam dát -e-e způsobí, že se skript okamžitě ukončí, pokud dojde k chybě (normálně skript pokračuje v běhu i bez chyby). Zde velmi záleží na tom, jak je skript napsaný - jestli chyba může způsobit nějaký problém, nebo jestli je naopak skript naprasený tak, že k chybám běžně dochází a přesto vše potřebné funguje.
s gnome-terminal bohužel nepomohu, nepoužívám
Na Ubuntu nevím, ale na Debianu je rc-local.service už v distribuci, takže stačí vyrobit ten rc.local. Když to nenabootovalo, řeklo to nějaké informace?
Nevím, jestli uvedené souvisí, ale obecně z rc.local nechceš spouštět grafické aplikace (gnome-terminal), protože rc.local se provede ještě před přihlášením uživatele (a když se GUI restartuje/uživatel se odhlásí a přihlásí, tak se nespustí znovu). Programy pro automatické spuštění v GUI se dávají do ~/.config/autostart/ (pozor, asi to nejsou shell skripty, ale .desktop soubory), ale já to vždycky naklikám. Bohužel nepoužívám GNOME, v Xfce se to jmenuje "Sezení a programy po spuštění". Tam je seznam a můžeš si tam přidat vlastní.