शेल स्क्रिप्टिंग में कुछ सामग्री के साथ एक फ़ाइल बनाना


20

मैं शेल स्क्रिप्टिंग के लिए थोड़ा नया हूं और मैं स्क्रिप्ट के अंदर एक नई फ़ाइल बनाना चाहता हूं और सामग्री जोड़ना चाहता हूं और फिर इसे बंद कर दूंगा। इसे उपयोगकर्ता से तर्क नहीं लेना चाहिए। पथ और सामग्री से सब कुछ पूर्वनिर्धारित है। मैं यह कैसे कर सकता हूं?

जवाबों:


24

बस आउटपुट पुनर्निर्देशन का उपयोग करें। उदाहरण के लिए

#!/bin/bash

echo "some file content" > /path/to/outputfile

>सभी लिखेंगे stdinद्वारा प्रदान stdoutकी echoफाइल करने के लिए outputfileयहाँ।

वैकल्पिक रूप से, आप इसके लिए teeएक पाइप और उपयोग भी कर सकते हैं । उदाहरण के लिए

echo "some file content" | tee outputfile

ध्यान रखें कि कोई भी उदाहरण किसी मौजूदा को अधिलेखित कर देगा outputfile

आप की जरूरत है संलग्न एक वर्तमान में मौजूदा फाइल करने के लिए, का उपयोग >>करने के बजाय >या tee -a

यदि आप इस पंक्ति में उपयोगकर्ता इनपुट स्वीकार नहीं करते हैं, तो कोई भी उपयोगकर्ता इनपुट यहां व्यवहार को नहीं बदल सकता है।


उन लोगों के लिए जो अपनी फ़ाइल के अंदर एक लाइन ब्रेकर रखना चाहते हैं, यहां देखें: stackoverflow.com/a/9741470/10512595
9

18

मुझे लगता है कि स्क्रिप्ट में एक नई फ़ाइल बनाने के लिए यहां डॉक्टर का उपयोग करना बेहतर है । यह क्लीनर लग रहा है, जो मुझे लगता है कि पठनीयता को प्रोत्साहित करता है।

उदाहरण के लिए:

cat > filename <<- "EOF"
file contents
more contents
EOF

"-"में <<-टैब किए इंडेंट जो हो जाएगा की अनुमति के लिए वैकल्पिक है, छीन लिया जब फ़ाइल बनाई गई है। आसपास के उद्धरण "EOF""यहाँ डॉक्टर" को किसी भी प्रतिस्थापन को करने से रोकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.