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

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: