Предотвратить интерпретацию bash без кавычек всего

Мне нужно вывести какой-то текст в виде 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'

В чем хитрость? Спасибо.

28
задан lzap 26 March 2012 в 09:55
поделиться