Seltsam Rückgabewert "134" zu rufen, glotzen in der bash-Skript
Traf ich ein sehr sehr seltsames Problem bei der Verwendung von gawk in bash-script.
in diesem script habe ich eine Funktion verwenden, um einige der text-Verarbeitung. Sogar eine sehr einfache gawk Kommando zurück-Fehler 134
#!/bin/bash
testFunc()
{
log "Before gawk: $?"
gawk '{print}' file
log "After gawk: $?"
}
Wenn ich manuell ausführen, um das Skript in der Konsole, wird es perfekt funktionieren, $?
wird immer 0 sein, was bedeutet, dass Erfolg, aber wenn ich dieses script als Linux-startup-Skript in die/etc /rc.d/für die Stufe 3, nach gawk ist ausgeführt, die $?
ist immer 134
ich weiß nicht, was ist der Sinn des 134.
wenn ich ersetzen gawk '{print}' file
zu gawk --version
, das Ergebnis ist ok, $? 0.
Dies würde bedeuten, dass der Vorherige Befehl nicht erfolgreich ausgeführt werden kann.
Nein, wenn ich ersetzen "gawk '{print}' Datei" auf "gawk --version" ein, das Ergebnis ist ok, $? 0
Was ist der Inhalt
der Inhalt der Datei ist wie folgt: abc,1,2[neue Zeile] def,3,4
Nein, wenn ich ersetzen "gawk '{print}' Datei" auf "gawk --version" ein, das Ergebnis ist ok, $? 0
Was ist der Inhalt
file
?der Inhalt der Datei ist wie folgt: abc,1,2[neue Zeile] def,3,4
InformationsquelleAutor mailzyok | 2014-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Exit-code 134 bedeutet, dass Ihr Programm abgebrochen wurde (erhielt SIGABRT), vielleicht als Folge einer fehlgeschlagenen assertion.
(Wie @hobbs hat erklärt, in dem Kommentar unten Sie subtrahieren 128 von exit-code anzeigen zu SIGABRT in der Liste.)
Sie müssen möglicherweise geben Sie den vollständigen Pfad des Befehls
log
und den vollständigen Pfadfile
Hier ist sigal Liste durch den Befehl
kill
SIGABRT
.wenn ich " ersetzen "gawk '{print}' Datei" auf "gawk --version" ein, das Ergebnis ist ok, $? ist 0, ich weiß nicht, warum es abgebrochen wurde.
Ich habe gebeten, zu prüfen
You may need give the full path of command log and full path of file
Danke. In der realen Skript, das Datei-Pfad wie "/private/data/data.txt". Ich weiß nicht, warum, müssen Sie den Pfad des Befehls log, es ist eine interne Funktion, sollte es kein problem sein.
ich habe versucht, gawk 'BEGIN {print "abc"}", die nicht erfordern eine Datei, es hat nicht funktioniert entweder, noch 134 zurückgegeben wurde, nur ich habe versucht, gawk --version, wird 0 zurückgegeben
InformationsquelleAutor BMW