여기에 이전 답변에 늦은 corolloary으로, 당신은 아마 당신이 원하는 상황에서 결국 일부 가 아닌 모든 변수가 보간 될 수 있습니다. 백 슬래시를 사용하여 달러 기호와 백틱을 피함으로써이 문제를 해결할 수 있습니다. 또는 정적 텍스트를 변수에 넣을 수 있습니다.
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"
:
''
되지만 (있는 것처럼) 구분 기호를 인용 하지 않으면 확장이 켜집니다 (에서처럼""
). 그러나 Perl에서는 직관이 정확합니다. 작은 따옴표로 묶인 식별자가있는 heredoc은 작은 따옴표로 묶인 것처럼 동작합니다. 하나는 큰 따옴표로 묶은 식별자가 있고 다른 하나는 역 따옴표로 묶는 것처럼 따옴표가있는 것입니다. ! 참조 : perlop : << EOF