पहले के जवाबों के लिए देर से कोरोलॉरी के रूप में, आप शायद उन स्थितियों में समाप्त हो जाते हैं, जहां आप कुछ नहीं बल्कि सभी चर को अलग करना चाहते हैं । आप डॉलर के संकेतों और बैकटिक्स से बचने के लिए बैकस्लैश का उपयोग करके इसे हल कर सकते हैं; या आप स्थिर पाठ को एक चर में रख सकते हैं।
Name='Rich Ba$tard'
dough='$$$dollars$$$'
cat <<____HERE
$Name, you can win a lot of $dough this week!
Notice that \`backticks' need escaping if you want
literal text, not `pwd`, just like in variables like
\$HOME (current value: $HOME)
____HERE
डेमो: https://ideone.com/rMF2XA
ध्यान दें कि किसी भी उद्धृत तंत्र - \____HERE
या "____HERE"
या'____HERE'
- सभी चर प्रक्षेप को निष्क्रिय कर देगा, और शाब्दिक टेक्स्ट का एक हिस्सा में यहाँ-दस्तावेज़ बदल जाते हैं।
एक सामान्य कार्य स्क्रिप्ट के साथ स्थानीय चर को संयोजित करना है जिसका मूल्यांकन एक अलग शेल, प्रोग्रामिंग भाषा या दूरस्थ होस्ट द्वारा किया जाना चाहिए।
local=$(uname)
ssh -t remote <<:
echo "$local is the value from the host which ran the ssh command"
# Prevent here doc from expanding locally; remote won't see backslash
remote=\$(uname)
# Same here
echo "\$remote is the value from the host we ssh:ed to"
:
''
), लेकिन उद्धृत नहीं करते हुए सीमांकक विस्तार का विस्तार करता है (जैसे कि यह अंदर था""
)। हालांकि, पर्ल में आपका अंतर्ज्ञान सही है, जहां एकल-उद्धृत पहचानकर्ता के साथ एक वंशानुगत व्यवहार करता है जैसे कि यह एकल उद्धरणों में थे, एक दोहरे-उद्धरण वाले पहचानकर्ता के साथ जैसे कि दोहरे उद्धरण चिह्नों में, और एक बैक-टिक वाले पहचान पत्र के साथ यदि ! देखें: perlop: << EOF