2016-05-05 2 views
1

Ich möchte überprüfen, ob eine bestimmte Mac-App von meiner Zertifizierungsstelle oder nicht im Terminal co-signiert wurde.Wie Text entspricht die bestimmte Zeile in Codesign, um zu überprüfen, ob es korrekt signiert oder nicht

Dafür habe ich diesen Code, aber ich bekomme die gesamte Codesign-Ausgabe und 1 am Ende aus irgendeinem Grund.

codesign -dvv --deep MayApp.app | grep "Authority=Mac Developer: My Certificate (5JFD6LWV27)" 
if [ $? -eq 0 ]; then 
    echo "App has been signed successfully by my cert!" 
else 
    echo "App is not signed correctly!" 
fi 

Jede Hilfe würde sehr geschätzt werden.

Danke!

+0

Verwenden 'grep -q' zu unterdrücken Ausgang – anubhava

+0

Vielen Dank für @anubhava hier läuten. Ich habe versucht -q, aber es hat die Ausgabe für mich nicht unterdrückt. –

+0

Kurz gesagt, habe ich Folgendes versucht: 'codesign -dvv --deep MayApp.app | grep -q "Authority = Mac-Entwickler: Mein Zertifikat (5JFD6LWV27)"; echo $? ' –

Antwort

1

Am wahrscheinlichsten Ihre codesign schreibt auf stderr.

Sie können diese Schnipsel Pipeline sowohl stdout/stderr zu grep:

if codesign -dvv --deep MayApp.app 2>&1 | grep -qF "Authority=Mac Developer: My Certificate (5JFD6LWV27)" 
then 
    echo "App has been signed successfully by my cert!" 
else 
    echo "App is not signed correctly!" 
fi 
+0

-bash: Syntaxfehler in der Nähe von unerwarteten Token '&' versucht, als ich diese Zeile ausprobierte:' codesign -dvv --deep MayApp.app | & grep -qF "Authority = Mac Entwickler: My Zertifikat (5JFD6LWV27) "; echo $? ' –

+0

ok versuche meinen aktualisierten Befehl – anubhava

+0

Das funktionierte wie ein Zauber. Danke vielmals. Kannst du bitte deine Antwort erklären? Entschuldigung, ich bin kein Experte im Bash-Scripting. –

Verwandte Themen