मैं निम्नलिखित कमांड का उपयोग करने के बाद,
pngString="$(cat example.png)"
echo -n "$pngString" > tmp.png
मैं PNG फ़ाइल के रूप में tmp.png नहीं खोल सकता। शायद कुछ जानकारी खो जाती है जब मैं $pngStringछवि फ़ाइल को संग्रहीत करने के लिए उपयोग करता हूं ।
तो सवाल यह है: मैं बैश स्क्रिप्ट में एक चर का उपयोग करके पूरी छवि जानकारी कैसे संग्रहीत कर सकता हूं?
catऔर echoइसके सभी ilk हृदय पाठ उपयोगिताओं में हैं। उन्हें द्विआधारी फाइलों पर बिना सोचे-समझे ढीला करने से अप्रत्याशित परिणाम होंगे। इसलिए चीजों base64का आविष्कार किया गया था।
cat example.png > tmp.pngया बेहतर क्यों नहीं cp example.png tmp.png?
catवास्तव में एक पाठ उपयोगिता नहीं है। यह कमांड सबस्टेशन है (जो न्यूलाइन्स को पीछे छोड़ता है), वैरिएबल असाइनमेंट (जिसमें शून्य बाइट्स नहीं हो सकते हैं) और echoकमांड (जो बैकस्लैश सीक्वेंस की व्याख्या कर सकते हैं) जो कि बाइनरी को मेनल करेगा, नहीं cat। लेकिन मैं आपके समग्र बिंदु से सहमत हूं।