Dopo aver usato il seguente comando,
pngString="$(cat example.png)"
echo -n "$pngString" > tmp.png
Non riesco ad aprire tmp.png come file PNG. Forse alcune informazioni vanno perse quando uso $pngString
per archiviare il file di immagine.
Quindi la domanda è: come posso memorizzare le informazioni complete sull'immagine usando una variabile nello script bash?
cat
e echo
tutti i suoi simili sono alla base delle utilità di testo . Lasciarli perdere inconsapevolmente su file binari avrà risultati imprevedibili. Ecco perché sono base64
state inventate cose del genere .
cat example.png > tmp.png
o meglio ancora cp example.png tmp.png
?
cat
realtà non è un'utilità di testo. È la sostituzione dei comandi (che rimuove le righe successive), l'assegnazione delle variabili (che non può contenere byte nulli) e il echo
comando (che può interpretare le sequenze di barre rovesciate) che manterranno il binario, no cat
. Ma sono d'accordo con il tuo punto complessivo.