2015-01-12 3 views
0

я создаю скрипт, который создать файл и вставить содержимое с помощьюСоздайте скрипт с помощью сценария оболочки

cat > /etc/file <<END 
FILE CONTENT 
END 

Он работает для большинства файлов, но она не работает, когда содержимое файла имеют команды оболочки в нем , Я попытался с командой echo, но у меня такая же проблема.

Почему он выполняет команды?

+2

Вставьте команду, которая не работает на вас – fedorqui

+2

Если здесь-doc содержит '$ variable', переменные будут расширены. Вы должны использовать '<< 'END'' для предотвращения расширения переменных. – Barmar

+1

Правильно! Я должен был использовать backtick escapes для решения моей проблемы, мой скрипт содержит переменные, которые были выполнены. Как я определил ваш ответ как действительный? Спасибо, кстати – Rck

ответ

2

В файл входит $variables, которые расширены. Чтобы избежать расширения переменных, мне пришлось использовать одиночные кавычки: 'END'.

Смежные вопросы