Ich habe den grep
Befehl. Ich suche nach einem Schlüsselwort aus einer Datei, möchte die Übereinstimmung jedoch nicht anzeigen. Ich möchte nur den Ausstiegsstatus der erfahren grep
.
shell-script
scripting
grep
jackass27
quelle
quelle
echo $?
wenngrep
ein Exit-Code ungleich Null zurückgegeben wird.Sie müssen lediglich
grep -q <pattern>
eine sofortige Überprüfung des Exit-Codes durchführen, damit der letzte Prozess beendet wird ($?
).Sie können dies verwenden, um einen Befehl wie diesen aufzubauen, zum Beispiel:
uname -a | grep -qi 'linux' ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error" ;; esac
Optional können Sie die Ausgabe von
STDERR
like so unterdrücken :grep -qi 'root' /etc/shadow &> /dev/null ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error: $?" ;; esac
Dies wird
error: 2
von dercase
Anweisung aus gedruckt (vorausgesetzt, wir haben keine Leserechte/etc/shadow
oder die Datei existiert nicht), aber die Fehlermeldung vongrep
wird an weitergeleitet,/dev/null
sodass wir sie nie sehen.quelle