Anzeige des Endes der Standardeingabe


12

Wie zeigt man an, dass man den Test in stdin beendet hat?

Angenommen, ich möchte "blau" mit MD5 verschlüsseln (ich weiß, MD5 ist nicht sicher, aber nur für dieses Beispiel). Ich habe es versucht

user$ blue | md5

was mir klar wurde ist, wie man eingaben an stdin weiterleitet, aber es funktioniert nicht richtig.

Aber wenn ich nur eintrete

user$ md5

Ich kann das Wort "blau" eingeben. Aber wie zeige ich md5 an, dass ich mit der Texteingabe fertig bin?


2
Ihr erster Versuch hat wahrscheinlich nicht richtig funktioniert, weil Sie versucht haben, blueeinen Befehl auszuführen, anstatt ihn zu wiederholen. Versuchen Sie es echo blue | md5stattdessen.
Trey Hunner

Antworten:


16

Sprechen Sie davon, eine MD5-Summe für ein Stück Text zu bekommen?

Führen Sie in diesem Fall den Befehl md5sum aus

Geben Sie Ihren Text ein. Wenn Sie fertig sind, wechseln Sie in eine neue Zeile, indem Sie die Eingabetaste drücken

Drücken Sie STRG-D, um Ihre Eingabe zu beenden.

 user$ md5sum
 blue
 CTRL-D

6
Das ist die richtige Antwort. Strg-D ist die kanonische Methode, um die Tastatur-Standardeingabe in einem beliebigen Shell-Befehl zu beenden. Seltsamerweise habe ich ein / sbin / md5 - unbestimmten Ursprungs, aber wahrscheinlich von OpenSSL - auf meinem System (Mac OS X 10.6.3), das bei der ersten Tastenkombination Strg-D nicht beendet wird. Es dauert eine zweite Strg-D-Taste, um es zu beenden. Gleiche mit openssl md5.
Spiff

4
@Spiff: Sie sollten nur zwei ^ D benötigen, wenn Sie die letzte Zeile weglassen möchten. Wenn Sie die letzte Zeile akzeptieren können (oder brauchen), sollte ein einzelnes ^ D in einer neuen Zeile ausreichen. Das EOF-Zeichen (^ D) löscht die gepufferte Eingabe. Wenn es keine gepufferte Eingabe gibt, wird der Prozess, der aus dem tty liest, mit einer Länge von Null gelesen (dh EOF). Siehe (zB) POSIX XRAT 11.1.9, EOF ; VEOF unter Linux termios ; oder EOF in FreeBSD-Begriffen .
Chris Johnsen

0

In Ihrem ersten Beispiel benötigen Sie ein echo:

user$ echo "blue" | md5

es ist sinnlos. Idee war, alle Eingaben werden per Tastatur getätigt. Problem war, wie man das Streamende markiert.
Znik
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.