[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fehlerbehandlung im Script


On Fri, Jul 01, 2005 at 04:18:40PM +0200, Werner Holtfreter wrote:
> Am Samstag, 25. Juni 2005 21:52 schrieb Marc Haber:
> 
> > > moechte einfache Fehlerbehandlung ergaenzen
> >
> > set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
> >               -e      Exit immediately if a simple command (see
> > SHELL GRAMMAR above) exits with a non-zero status.
> 
> > Hilft das?
> 
> Perfekt!
> 
> Aber nun muss ich stellenweise doch Fehler akzeptieren, z.B. wenn 
> statt einer CD-RW eine CD-R eingelegt wird, soll der Fehler beim 
> Loeschversuch mit cdrecord nicht zum exit fuehren.
> 
> "man set" sagt:
> 
> | Unset all positional parameters: set --
> 
> Kann ich damit "set -e" wieder abschalten? Ist "e" ein "positional 
> parameter"? Die woertliche Uebersetzung fuehrt da nicht weiter.
> 
> Wenn mir jemand eine Alternative zum Abfangen des Fehlers sagt, waere 
> das auch nett.
Ich wuerde nicht in einem Fort das e-Flag manipulieren -- Zustand ist
vor allem bei solchen Problemen immer tricky, weil gerne mal ein
ungesetztes e entkommt und dann scheiternde Programme doch nicht
diagnostiziert werden.

Warum nicht einfach ein gutes Ende simulieren?

thisCommandMayFail || true

-- wenn du es etwas selbstdokumentierender machen willst, sage

ignorefail() {
	true
}

und dann

mkfs /dev/hda1 || ignorefail

          Markus