Практическое правило заключается в том, что используемая вами «предельная строка» (я использовал «EOF» в моем случае, но вы можете использовать все, что вы хотите) не должна иметь пробелов (или табуляции) перед ней.Если это так, он не будет считаться концом.
Пример:
myFunction() {
cat << EOF
Hello
World
EOF
}
Вышеуказанный 'EOF' считается обычным текстом, потому что перед ним есть пробелы!Если вместо этого вы напишите следующее:
myFunction() {
cat << EOF
Hello
World
EOF
}
Теперь это будет работать!
Если вы настаиваете на использовании пробелов, вы можете подавить вкладки, используя символ «-» для непосредственного использования.справа от символов «<<». </p>
Пример:
myFunction() {
cat <<- EOF
Hello
World
EOF
}
Обратите внимание, что это работает только для вкладок, а не пробелов!Это здорово, чтобы ваш код был немного более читабельным.
Также обратите внимание, что если вы заключите в кавычки «строку предела», вы в конечном итоге отключите подстановку параметров.Поэтому, если вы хотите написать текст, который не должен быть заменен или выполнен, это делает возможным:
cat << "EOF"
Type `ls -la` at the command prompt
EOF