यहां <<-HERE
टर्मिनेटर के साथ दस्तावेज़ इंडेंटेड मल्टी-लाइन टेक्स्ट स्ट्रिंग्स के लिए अच्छी तरह से काम करते हैं। यह यहां से किसी भी प्रमुख टैब को यहां से हटा देगा। (लाइन टर्मिनेटर अभी भी रहेंगे, हालांकि)
cat <<-____HERE
continuation
lines
____HERE
Http://ss64.com/bash/syntax-here.html भी देखें
यदि आपको कुछ संरक्षित करने की आवश्यकता है, लेकिन सभी नहीं, तो प्रमुख व्हाट्सएप, आप कुछ का उपयोग कर सकते हैं
sed 's/^ //' <<____HERE
This has four leading spaces.
Two of them will be removed by sed.
____HERE
या शायद नए tr
सिरे से छुटकारा पाने के लिए उपयोग करें:
tr -d '\012' <<-____
continuation
lines
____
(दूसरी पंक्ति में एक टैब और एक स्पेस अप फ्रंट है; टैब को हेरेडोक टर्मिनेटर से पहले डैश ऑपरेटर द्वारा हटा दिया जाएगा, जबकि स्पेस संरक्षित रहेगा।)
कई लाइनों पर लंबे जटिल तारों को लपेटने के लिए, मुझे पसंद है printf
:
printf '%s' \
"This will all be printed on a " \
"single line (because the format string " \
"doesn't specify any newline)"
यह उन संदर्भों में भी अच्छी तरह से काम करता है जहां आप शेल स्क्रिप्ट के अनौपचारिक टुकड़ों को किसी अन्य भाषा में एम्बेड करना चाहते हैं जहां होस्ट भाषा का सिंटैक्स आपको यहां दस्तावेज़ का उपयोग करने की अनुमति नहीं देगा, जैसे कि Makefile
या Dockerfile
।
printf '%s\n' >./myscript \
'#!/bin/sh` \
"echo \"G'day, World\"" \
'date +%F\ %T' && \
chmod a+x ./myscript && \
./myscript