Bash script visszatérési érték [MEGOLDVA]

Sziasztok!

A következő lenne a problémám: Java programból hívok egy bash scriptet. A script futtatása után az exitValue() függvénnyel szépen látom, hogy sikeres volt-e a futtatás. A gondom csak az, hogy ez az érték az utolsó sor eredményét adja vissza. Ha mondjuk a script így néz ki:

#!/bin/bash
mkdir /home/users/home21

Akkor ha már létezik a 21-es könyvtár, szépen hibaüzenettel kilép, amit Javaban is megkapok.
Viszont ha a script már két soros (és a 21-es könyvtár szintén létezik):

#!/bin/bash
mkdir /home/users/home21
mkdir /home/users/home21/files

A második sor hibátlanul lefut, és hibakód nélkül tér vissza a futás a Java kódhoz.

Meg lehet az oldani, hogy bármely sornál ahol hiba van, ott kilépjen és ne futtassa tovább a scriptet?
------------------------------------------------------------------------------------------------------
Köszönöm a segítséget és a gyors válaszokat.

Hozzászólások

Talán így:


#!/bin/bash
mkdir /home/users/home21 || exit 1

--
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.

Man bash, set -e. Egyébként pedig triviális, minden parancs után raksz 2 db & jelet, kivéve a legutolsót - valahogy így:
mkdir ize &&
mkdir ecet &&
cd ide &&
cd oda &&
cd amoda &&
ezt csinalom &&
meg azt csinalom

#!/bin/bash
ret_val=0
mkdir /home/users/home21
ret_val=$[ret_val+$?]
mkdir /home/users/home21/files
ret_val=$[ret_val+$?]

....
exit $ret_val

Hoppá, rosszul olvastam a követelményt, de most már nem törlöm ki... :D
--
Coding for fun. ;)

Es szerinted ez a szep? :p b0b0-nak nyilvan fogalma sincs, hogyan lehet lekerdezni a visszateresi erteket es hogyan lehet esetleg egy picit bonyolultabb hibakezelest megvalositani (nem csak kilepni). Na most ezen a peldan keresztul ezt tovabbra sem fogja elsajatitani. Egyebkent az altalad belinkelt oldal is emliti a fenti "eleg csunya" megoldast/megoldasokat, amennyiben az ember egy kicsit tobb kontrollt akar a szkriptjei folott ;) De nyilvan a 'set -o errexit' tokeletes, ha csak az a cel, hogy

bármely sornál ahol hiba van, ott kilépjen és ne futtassa tovább a scriptet

Azert bele ne halljunk a szepsegbe! ;)