@ Cyrus's Antwort ist genau darauf zu echo
verstehen, wie man das Problem lösen kann. Wenn Sie es erklären, wird am Ende des Strings eine neue Zeile ausgegeben. Wie Sie auf dieser Online-Ausgabe sehen können, gibt hello
ein Zeilenumbruch genau den MD5 aus, den Sie zuvor erhalten haben. Wenn Sie -n
die Newline unterdrücken, erhalten Sie das erwartete Ergebnis.
Bearbeiten :
Sie können es deutlich sehen, wenn Sie es in ausgeben. Dort hexdump
wird das Hexadezimal der Bytes angezeigt.
$ echo "str_example" | hd 00000000 73 74 72 5f 65 78 61 6d 70 6c 65 0a |str_example.|
Siehe 0a
( \n
) am Ende der Zeichenfolge
$ echo -n "str_example" | hd 00000000 73 74 72 5f 65 78 61 6d 70 6c 65 |str_example|
Mit -n
echo wird \n
am Ende keine neue Zeile ( ) gesetzt
Jetzt mit leerem String
$ echo "" | hd 00000000 0a |.|
Nur der New Line Charakter
$ echo -n "" | hd
Leere Zeichenfolge, daher hexdump
keine Ausgabe