Après avoir utilisé la commande suivante,
pngString="$(cat example.png)"
echo -n "$pngString" > tmp.png
Je ne peux pas ouvrir le tmp.png en tant que fichier PNG. Peut-être que certaines informations sont perdues lorsque j'utilise $pngStringpour stocker le fichier image.
La question est donc: comment puis-je stocker les informations d'image complètes en utilisant une variable dans le script bash?
catet echoet tous ses semblables sont au cœur des utilitaires de texte . Les laisser se perdre sans méfiance sur les fichiers binaires aura des résultats imprévisibles. C'est pourquoi des choses comme base64ont été inventées.
cat example.png > tmp.pngou mieux encore cp example.png tmp.png?
catn'est pas vraiment un utilitaire de texte. C'est la substitution de commande (qui supprime les sauts de ligne de fin), l'affectation de variable (qui ne peut pas contenir d'octets nuls) et la echocommande (qui peut interpréter les séquences de barre oblique inverse) qui gèreront le binaire, non cat. Mais je suis d'accord avec votre point global.