qeldroma
03-09-2008, 14:55
Hallo zusammen,
ich habe da ein Ergebnis, was ich nicht verstehe:
Ich habe ein Skript (test_script.sh), welches ich zeilenweise aus einer csv-Datei betanke.
Dieses Skript schmeißt die Exitcodes 0 oder 1.
Interessanterweise steigt bei folgenden zwei Beispielen das Skript mit der while-schleife sofort nach einmaligem Ausführen von "test_script.sh" aus, egal ob der exitcode von "test_script.sh" 0 oder 1 war? Die for-Schleife arbeitet wie erwartet.
Beispiel "for":
for line in `cat csv-file.csv`;do test_script.sh $line;done
Beispiel "while":
cat csv-file.csv|while read line;do test_script.sh $line;done
Wie habe ich mir das zu erklären?
Noch spannender war, daß ich nicht mal mit "trap" dieses verhindern konnte, also
cat csv-file.csv|while read line;do trap "" SIGHUP EXIT;test_script.sh $line;done
oder durch
cat csv-file.csv|while read line; test_script.sh $line && echo || echo;done
Kann mich da jemand aufklären?
Gruß und danke, Florian
ich habe da ein Ergebnis, was ich nicht verstehe:
Ich habe ein Skript (test_script.sh), welches ich zeilenweise aus einer csv-Datei betanke.
Dieses Skript schmeißt die Exitcodes 0 oder 1.
Interessanterweise steigt bei folgenden zwei Beispielen das Skript mit der while-schleife sofort nach einmaligem Ausführen von "test_script.sh" aus, egal ob der exitcode von "test_script.sh" 0 oder 1 war? Die for-Schleife arbeitet wie erwartet.
Beispiel "for":
for line in `cat csv-file.csv`;do test_script.sh $line;done
Beispiel "while":
cat csv-file.csv|while read line;do test_script.sh $line;done
Wie habe ich mir das zu erklären?
Noch spannender war, daß ich nicht mal mit "trap" dieses verhindern konnte, also
cat csv-file.csv|while read line;do trap "" SIGHUP EXIT;test_script.sh $line;done
oder durch
cat csv-file.csv|while read line; test_script.sh $line && echo || echo;done
Kann mich da jemand aufklären?
Gruß und danke, Florian