Wie überprüfe ich die Prüfsumme über die Kommandozeile?

9

Ich möchte so etwas auf der Kommandozeile meiner UNIX-Variante machen

%Vor%

Ich möchte keine separate Skript-Textseite schreiben, nur um das zu überprüfen.
 Dieses obige Ding zeigt einen Syntaxfehler.  Aber es muss einen glatten Weg geben, um dies zu umgehen?

Wie geht das?

    
John Doe 22.02.2014, 16:22
quelle

7 Antworten

9
%Vor%

Normalerweise erhalten Sie diese Ausgabe von Shasum

%Vor%

Was mein Befehl ist, nimmt das erste Feld und vergleicht es mit Deine Zeichenfolge. Wenn die Zeichenfolgen übereinstimmen, gibt awk "Good to go" aus.

    
Steven Penny 22.02.2014, 16:26
quelle
5

Versuchen Sie etwas wie:

%Vor%

Der Operator test ist in [ .. ] eingeschlossen und die richtige Syntax ist if; then; fi , aber Sie können ihn mit den Operatoren && und || simulieren.

Test:

%Vor%     
jaypal singh 22.02.2014 16:40
quelle
3
%Vor%     
Nestor Urquiza 14.11.2017 09:48
quelle
2

Ich habe ein Bash-Skript gemacht, das einen davon abhält, ständig darüber nachdenken zu müssen:

Ссылка

Überprüfen Sie es:

verify_checksum file.tgz [SHA1, SHA256, MD5 checksum]

... oder Sie können Argumente austauschen, weil Sie wieder vergessen haben, ob die Datei zuerst oder zuletzt kommt:

verify_checksum [SHA1, SHA256, MD5 checksum] file.tgz

... oder Sie können die verschiedenen Prüfsummen einer Datei berechnen (listet sie alle auf):

verify_checksum file.tgz

... oder Sie können zwei Dateien vergleichen:

verify_checkusm file1.tgz file2.tgz

    
David Tonhofer 18.02.2018 16:06
quelle
1

Verwenden Sie etwas wie

%Vor%

Erklärung: sha256sum liefert sowohl die Prüfsumme als auch den Dateinamen, getrennt durch Leerzeichen. Wir können cut es nur die Prüfsumme liefern.

    
Uli Köhler 22.02.2014 16:24
quelle
1

Benutze shasum, um den Hash zu erhalten, schreibe dann test <copy-1> = <copy-2> && echo a || echo b , du wirst a sehen, wenn die Hashs identisch sind, sonst b .

Wenn Sie faul sind, können Sie den || echo b -Teil ablegen, Sie sehen a , wenn der Hash der gleiche ist, sonst nichts. Und wenn Sie noch fauler sind, können Sie sogar kein Echo schreiben und sich auf die Anwesenheit oder Abwesenheit von command not found message verlassen.

    
Robert Vanden Eynde 17.07.2017 22:22
quelle
1

Ich benutze den Exit-Code des vorherigen / letzten Befehls:

Wenn die Prüfsumme gültig ist, ist der Beendigungscode des zuletzt ausgeführten Befehls 0 :

%Vor%

Wenn die Prüfsumme nicht korrekt ist, ist der Exit-Code anders als 0 :

%Vor%

Und hier ist das ganze Beispiel mit einer if Anweisung:

%Vor%     
czerasz 05.12.2017 09:24
quelle

Tags und Links