आदेशों के अधिक जटिल अनुक्रमों के लिए आपको यहां दस्तावेज़ केcat
साथ कमांड का उपयोग करने पर विचार करना चाहिए । मूल स्वरूप है
command > file << END_TEXT
some text here
more text here
END_TEXT
यह दो अलग-अलग व्यवहार हैं, यह इस बात पर निर्भर करता है कि END_TEXT लेबल उद्धृत है या निर्विरोध:
अनक्लेटेड लेबल : सामग्री सामान्य शेल विस्तार के बाद लिखी जाती है
उद्धृत लेबल : यहां दस्तावेज़ की सामग्री को सामान्य शेल विस्तार के बिना, शाब्दिक रूप से व्यवहार किया जाता है
उदाहरण के लिए निम्नलिखित लिपि पर विचार करें
#!/bin/bash
var1="VALUE 1"
var2="VALUE 2"
cat > file1 << EOF1
do some commands on "$var1"
and/or "$var2"
EOF1
cat > file2 << "EOF2"
do some commands on "$var1"
and/or "$var2"
EOF2
परिणाम हैं
$ cat file1
do some commands on "VALUE 1"
and/or "VALUE 2"
तथा
$ cat file2
do some commands on "$var1"
and/or "$var2"
यदि आप अपनी स्क्रिप्ट से शेल कमांड का उत्पादन कर रहे हैं, तो आप शायद उद्धृत फॉर्म चाहते हैं।