Obsługa błędów
Michal Moskal
malekith w pld.org.pl
Pon, 17 Wrz 2001, 11:37:13 CEST
On Fri, Sep 14, 2001 at 01:01:44AM +0200, Rafał Kleger-Rudomin wrote:
>
> Cześć!
>
> W installer-dest zanadto się rozpuściliśmy z używaniem
> konstrukcji '| while read' zapominając o nieprzyjemnym efekcie
> z tym związanym: mianowicie wnętrze pętli jest wykonywane w subshellu
> i niestety zwracany status jest gubiony.
> Tak więc mimo 'set -e' porażka jakiejś komendy czy też exit wewnątrz pętli
> przerywa jedynie pętlę i program leci dalej.
>
> Rozwiązania dwa jakie mi się nasuwają:
> 1) zapisywać informację o porażce do pliku i sprawdzać zaraz po pętli
> - rozwiązanie częściowe ponieważ trzeba by sprawdzać status każdej
> komendy w pętli
> 2) w razie porażki uruchamiać killall `basename $0` :)))))
> - ale wady jak w pkcie 1)
>
> Czy też ja czegoś nie wiem i rozwiązanie jest proste jak drut?
Jest. Znaczy shell powinien sie imho wywalic, sprawdz w pdksh.
Chyba będe musiał patchować asha...
--
: Michal ``,/\/\, '' Moskal | | : GCS {C,UL}++++$
: | |alekith @ |)|(| . org . pl : {E--, W, w-,M}-
: | : {b,e>+}++ !tv h
: Current project: ftp://aleph-0.dhs.org/pub/ksi/ : PLD Team member
Więcej informacji o liście dyskusyjnej pld-installer