Ich habe den folgenden Code in meinem Shell-Skript:bzip2 - Broken Rohr
bzip2 -dc $filename | head -10 > $output
Manchmal diesen Fehler Ich erhalte (Debug-Ausgabe aktiviert):
+ head -10
+ bzip2 -dc mylog.bz2
bzip2: I/O or other error, bailing out. Possible reason follows.
bzip2: Broken pipe
Input file = mylog.bz2, output file = (stdout)
Es sieht aus wie head
Befehl tritt abrupt auf und bzip2
empfängt SIGPIPE. Was kann ich damit machen? Ich muss sicher sein, dass die ersten 10 Zeilen in der $output
Datei egal was sind. Es gibt keine Garantie, dass dies immer der Fall ist, wenn einer der Prozesse kläglich scheitert.
Es gibt keinen Unterschied zwischen 'Kopf -10' und' Kopf -n10' AFAIK. Ja 'head' macht, was es tut, aber in korrekter Weise (normalerweise) ohne Fehler. Dieser Fehler tritt in der Produktionsumgebung auf und ich kann es bis jetzt nicht reproduzieren. – Lazin
@Lazin zumindest, für meine Version von 'Kopf', erscheint die Nicht-' n'-Version nicht in der Dokumentation; aber ja, es funktioniert. –
@Lazin der Unterschied zwischen '-10' und' -n 10' ist, dass das letztere in der [POSIX-Spezifikation] (http://pubs.opengroup.org/onlinepubs/009604599/utilities/head.html), so ist ist eher systemübergreifend übertragbar. –