bash: for-Schleife abbrechen
Hallo,
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.'
Derzeit behelfe ich mir mit einem `exit 1'. Das
funktioniert, weil ich aus einem Makefile heraus aufrufe.
Ich kann mir auch behelfen mit:
$ r=0 ; for i in a b c ; do test -f $i ; r=$? ; test $r -eq 0 || break ;
> ls -l $r ; done ; test $r -ne 0 || echo 'All files exist.'
Gibt es elegantere Lösungen?
Danke erstmal,
Gruß
Bertram
--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de
Reply to: