Jawaban @Cyrus tepat dengan cara menyelesaikan ini - untuk menjelaskan, saat menggunakan echo
itu akan menampilkan baris baru di akhir string. Seperti yang Anda lihat pada output online ini, hello
dengan keluaran baris baru persis seperti MD5 yang Anda dapatkan sebelumnya. Menggunakan -n
menekan baris baru, dan kemudian akan memberi Anda hasil yang Anda harapkan.
Edit :
Anda dapat melihatnya dengan jelas jika Anda menampilkannya ke hexdump
, yang menunjukkan heksadesimal byte di sana.
$ echo "str_example" | hd
00000000 73 74 72 5f 65 78 61 6d 70 6c 65 0a |str_example.|
Lihat 0a
(\n
) di akhir string
$ echo -n "str_example" | hd
00000000 73 74 72 5f 65 78 61 6d 70 6c 65 |str_example|
Dengan -n
echo tidak menempatkan baris baru (\n
) pada akhirnya
Sekarang dengan string kosong
$ echo "" | hd
00000000 0a |.|
Hanya karakter Baris Baru
$ echo -n "" | hd
String kosong, jadi hexdump
tidak menunjukkan keluaran
Secara default, echo
termasuk karakter baris baru di akhir output. Namun, PHP dan situs online yang Anda gunakan tidak menyertakan baris baru. Untuk menekan karakter baris baru, gunakan -n
bendera:
echo -n "hello" | md5sum
Keluaran:
5d41402abc4b2a76b9719d911017c592 -
Lihat:help echo
atau dengan printf:
printf "%s" "hello" | md5sum