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 $pngStringuntuk menyimpan file gambar.
Jadi pertanyaannya adalah: Bagaimana saya bisa menyimpan informasi gambar lengkap menggunakan variabel dalam skrip bash?
catdan echodan semua sejenisnya adalah utilitas teks hati . Membiarkannya lepas tanpa curiga pada file biner akan memiliki hasil yang tidak terduga. Itu sebabnya hal-hal seperti base64diciptakan.
cat example.png > tmp.pngatau lebih baik cp example.png tmp.png,?
catsebenarnya bukan utilitas teks. Ini adalah substitusi perintah (yang menghapus baris baru), penugasan variabel (yang tidak dapat berisi byte nol) dan echoperintah (yang dapat menginterpretasikan urutan backslash) yang akan memotong-motong biner, bukan cat. Tapi saya setuju dengan poin keseluruhan Anda.