[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fehlerbehandlung im Script
[Thread Prev] | [Thread Next]
- Subject: Re: Fehlerbehandlung im Script
- From: Markus Demleitner <msdemlei@xxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 1 Jul 2005 16:26:07 +0200
- To: uugrn@xxxxxxxxxxxxxxx
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