Wie ist es möglich, den Exit-Code des in einem Find gestarteten Grep-Befehls abzurufen:
z.B:
find ./export-`date +%Y%m%d`-*/instance.log -type f -exec grep -i -m1 error {} \;
Unabhängig davon, ob das Wort „Fehler“ in der Datei gefunden wird oder nicht, wird der Exit-Code zurückgegeben.0
Der Inhalt von instance.log ist wie folgt:
2016-09-30 09:01:20 : FEHLER2 (16)
Antwort1
Der Befehl find mit der Option -exec gibt den Statuscode des grep-Befehls zurück. Beispiel:
find . -type f -exec grep 201 {} +
Gibt 0 zurück, wenn ich es in einem Ordner mit einigen Protokolldateien ausführe, die das Muster „201“ enthalten. Sie können es mit echo $? in Ihrer Konsole überprüfen (das gibt 0 zurück, wenn das Muster gefunden wird).
Wenn ich den gleichen Befehl in einem anderen Ordner mit Dateien ausführe, die nicht „201“ enthalten, ist der Statuscode des Suchbefehls 1