Мне нужно вывести какой-то текст в виде bash-скрипта, но в скрипте. Я использую для этого cat, но у него есть один недостаток. Он интерпретирует переменные и прочеево время записи. Я хочу предотвратить это.
Как это сделать, не заключая в кавычки все переменные(мой скрипт слишком длинный)? Пример
cat >/tmp/script << EOF
$HOSTNAME
# lots of other stuff I do NOT want to escape like \$VARIABLE
# ...
EOF
cat /tmp/script
myhostname.mylan
Я хочу:
cat /tmp/script
$HOSTNAME
Редактировать: обратите внимание, что мой скрипт (здесь только $HOSTNAME) очень длинный, я не хочу его полностью менять. Также одиночные кавычки не работаютс <<
cat >/tmp/script '<< EOF
$HOSTNAME
EOF'
File not found: EOF'
В чем хитрость? Спасибо.