कैसे चर में HEREDOC के लिए चर पास करने के लिए?


16

मैं कुछ इस तरह करना चाहता हूं:

$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end

$ cat test
My name is John

कोई विचार?

जवाबों:


24
cat <<EOF > test
My name is $NAME
EOF

या और भी

cat <<==end > test
My name is $NAME
==end

मेरे लिए काम किया।

ऐसा लगता है कि जब आप वैरिएबल ==endमें ले जाते हैं तो 'विकल्प नहीं होता है।

आह, यह यहाँ आदमी पृष्ठ में है (3.6.6 देखो):

यहाँ दस्तावेजों का प्रारूप है:

      <<[-]word
              here-document
      delimiter

कोई पैरामीटर विस्तार, कमांड प्रतिस्थापन, अंकगणितीय विस्तार या pathname विस्तार शब्द पर नहीं किया जाता है । यदि शब्द के किसी भी अक्षर को उद्धृत किया जाता है, तो सीमांकक शब्द पर उद्धरण को हटाने का परिणाम है, और यहां दस्तावेज़ में लाइनों का विस्तार नहीं किया गया है। यदि शब्द अयोग्य है, तो यहां दस्तावेज़ की सभी पंक्तियों को पैरामीटर विस्तार, कमांड प्रतिस्थापन और अंकगणितीय विस्तार के अधीन किया गया है। [...]


आप दोहरे उद्धरण चिह्नों ( cat << "==end" > test) का भी उपयोग कर सकते हैं , लेकिन कठिन उद्धरण वास्तव में प्रतिस्थापन को रोकते हैं।
Mat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.