व्हॉट्सएप की गूंज >>


10

मैं एक स्क्रिप्ट बना रहा हूं जो एक फ़ाइल की सामग्री को पढ़ता है, सामग्री को हेरफेर करता है और दूसरी फ़ाइल (विशेष रूप से वर्चुअल होस्ट फ़ाइल) में जोड़ता है। आउटपुट फ़ाइल में फ़ॉर्मेटिंग और व्हाट्सएप महत्वपूर्ण है लेकिन जब मैं सामग्री लिखता हूं, तो व्हॉट्सएप छीन लिया जाता है।

VHOST_PATH="/etc/apache2/extra/httpd-vhosts.conf"
TEMPLATE_PATH="./template.conf"
TEMPLATE=$(<TEMPLATE_PATH)
# manipulating $TEMPLATE
echo $TEMPLATE                   #outputs correct whitespace
echo $TEMPLATE >> $VHOST_PATH    #does not output correct whitespace

तो पहली प्रतिध्वनि कुछ ऐसा पैदा करती है

<VirtualHost *:80>
    ServerAdmin webmaster@domain
    DocumentRoot "root/web"
    ServerName domain
    ErrorLog "root/logs/error_log"
</VirtualHost>

लेकिन स्ट्रिंग जो फ़ाइल में मिलती है वह है

<VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost>

लक्ष्य फ़ाइल में संलग्न करते समय मैं व्हाट्सएप को कैसे संरक्षित करूं? मैंने इसके लिए खोज की है, लेकिन सभी समान प्रश्न इसे दोबारा लिखे बिना मेरी स्क्रिप्ट पर लागू नहीं होते हैं।

जवाबों:


9

हर दूसरे कार्यक्रम की तरह, प्रतिध्वनि को अलग-अलग तर्कों के रूप में व्हॉट्सएप द्वारा अलग किए गए तारों की व्याख्या करता है।

कॉल करने के बाद

echo foo    bar

शेल द्वारा प्रतिध्वनित होने वाला एकमात्र डेटा यह है कि पहला तर्क है fooऔर दूसरा है bar

एक पूरे तर्क के रूप में व्हाट्सएप वाले पूरे स्ट्रिंग को पास करने के लिए, इसे दोहरे उद्धरण चिह्नों में संलग्न करें:

echo "foo    bar"

सभी चार स्थानों को मुद्रित करेगा।


एक साइड नोट पर: मुझे आश्चर्य है कि echo $TEMPLATEयह काम करेगा। यह कई व्हाट्सएप को भी ध्वस्त कर सकता है।
डेनिस

हाँ! वह यह था। यह पूरी तरह से समझ में आता है, लेकिन मुझे नहीं पता था कि यह मामला था। इसके अलावा, echo $TEMPLATEकाम कर रहा था क्योंकि मेरे पास इसके बारे में उद्धरण थे लेकिन मैंने इसे अपनी पोस्ट पर कॉपी करने की उपेक्षा की। मुझे नहीं लगा कि यह महत्वपूर्ण था। मैं गलत था!
जेफ

1
@ जेफ निम्नलिखित देखें: कमांड्स एंड आर्गुमेंट्स
स्लहॉक

1
@Jeff, यह महत्वपूर्ण रूप से महत्वपूर्ण है, जब सहायता की मांग की जाती है, फिर से टाइप करने के बजाय कट और पेस्ट करें।
ग्लेन जैकमैन

@glennjackman मुझे लगा कि मैं लिपियों से दूर हो सकता हूं क्योंकि स्क्रिप्ट इतनी कम थीं और जब से मैं एक टर्मिनल में काम कर रहा था तब कॉपी + पेस्ट एक दर्द होगा। मैं गलत था। सबक सीखा। पारितोषिक के लिए धन्यवाद।
जेफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.