Re: bash: for-Schleife abbrechen
Hallo,
Am Samstag, 01. Mai 2004, 13:30:43 +0200 schrieb Christian Bodenstedt:
> On Fri, 30 Apr 2004 21:05:09 +0200
> Bertram Scharpf <b.scharpf@tesionmail.de> wrote:
>
> > eine for-Schleife möchte ich abbrechen, wenn darin ein Fehler
> > auftritt. Der Rückgabewert soll dann der des gescheiterten
> > Kommandos sein. Also in etwa so:
> >
> > $ for f in file1 file2 file3 ; do test -f $f || my_break ;
> > > ls -l $r ; done && echo 'All files exist.'
> >
> > [...]
> >
> > Gibt es elegantere Lösungen?
> Um das Exitvalue von "test -f" oder was auch immer im Fehlerfall zu
> erhalten sollte mit der bash folgendes funktionieren:
>
> ( for i in gibs gar nich; do
> test -f $i||exit $?;
> echo "datei $i existiert;
> done ); echo exitval: $?
Gute Idee!
Mir ist inzwischen selber noch eine Lösung mit einer Funktion
eingefallen:
$ forfunc() { for i in a b c ; do test -f $i || return $? ; ls -l $i ;
> done } ; forfunc && echo 'All files exist.' ; unset forfunc
Gefällt mir vom Gesichtspunkt Eleganz aber nicht wesentlich
besser ...
Gruß
Bertram
--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de
Reply to: