Setelah saya menggunakan perintah berikut,
pngString="$(cat example.png)"
echo -n "$pngString" > tmp.png
Saya tidak bisa membuka tmp.png sebagai file PNG. Mungkin beberapa informasi hilang ketika saya gunakan $pngString
untuk menyimpan file gambar.
Jadi pertanyaannya adalah: Bagaimana saya bisa menyimpan informasi gambar lengkap menggunakan variabel dalam skrip bash?
cat
dan echo
dan semua sejenisnya adalah utilitas teks hati . Membiarkannya lepas tanpa curiga pada file biner akan memiliki hasil yang tidak terduga. Itu sebabnya hal-hal seperti base64
diciptakan.
cat example.png > tmp.png
atau lebih baik cp example.png tmp.png
,?
cat
sebenarnya bukan utilitas teks. Ini adalah substitusi perintah (yang menghapus baris baru), penugasan variabel (yang tidak dapat berisi byte nol) dan echo
perintah (yang dapat menginterpretasikan urutan backslash) yang akan memotong-motong biner, bukan cat
. Tapi saya setuju dengan poin keseluruhan Anda.