मुझे बैश स्क्रिप्टिंग विशेषज्ञों के लिए यहां एक छोटा सा गूढ़ व्यक्ति मिला है ... मेरे पास एक बैश स्क्रिप्ट है जिसे इसे चलाने पर एक छोटी (80 बाइट) बाइनरी फ़ाइल बनाने की आवश्यकता होती है। फ़ाइल की सामग्री को स्क्रिप्ट के अंदर ही शामिल करने की आवश्यकता है (यानी मैं स्क्रिप्ट के साथ फ़ाइल को पैकेज नहीं करना चाहता)।यूडकोड का उपयोग किए बिना एक बैश स्क्रिप्ट बाइनरी फ़ाइल कैसे लिख सकती है?
मेरे स्क्रिप्ट वर्तमान में इस तरह यह करता है:
echo 'begin-base64 644 dummy.wav' > /tmp/dummy.uu
echo 'UklGRkgAAABXQVZFZm10IBAAAAADAAEAAHcBAADcBQAEACAAZmFjdAQAAAAAAAAAUEVBSxAAAAAB' >> /tmp/dummy.uu
echo 'AAAAQDYlTAAAAAAAAAAAZGF0YQAAAAA=' >> /tmp/dummy.uu
echo '====' >> /tmp/dummy.uu
uudecode -o /tmp/dummy.wav /tmp/dummy.uu
rm /tmp/dummy.uu
... ऊपर रन के बाद, मैं अपनी फ़ाइल /tmp/dummy.wav है। लेकिन मुझे अभी पता चला है कि इस स्क्रिप्ट को चलाने के लिए कंप्यूटर को यूडियोड स्थापित नहीं किया गया है (और मुझे इसे इंस्टॉल करने की अनुमति नहीं है), इसलिए मुझे इस फ़ाइल को बनाने के लिए कुछ और तरीका ढूंढना होगा। कोई विचार?
#!/bin/bash
tail -n +4 $0 | tar xvzf -
exit
<tgz file appended here><newline>
आप बच गए स मान के साथ बैश संस्करण के साथ यहाँ समान दस्तावेज़ सुविधा का उपयोग कर सकते हैं और उन सभी गूँज से बचने और '' >> जोड़ देता है। –
यहां एक दस्तावेज़ और कोई '>>' का उपयोग कर एक संस्करण जोड़ा गया। –