Я знаю, что этот вопрос звучит тысячи раз раньше. Но почему-то я не могу найти хорошее решение.
Проблема: мне нужно написать многострочный текст из оболочки. Текст может содержать специальные последовательности символов (начиная с $), и я не хочу избегать их. Как это сделать?
В настоящее время я использую кошку:
cat <<TAGTEXTFILE > sometext.txt
Here is some text in which I don't want to escape sequences like: $().
I just want to see this text in this script exactly as
it will look in resulting sometext.txt file.
TAGTEXTFILE
Но с кошкой я должен избежать этого: $ (). Как написать многострочный текст без экранирования специальных символов? Пожалуйста, не предлагайте использовать Python, мне нужно решение оболочки (bash или dash).
1
Какая у вас система? я не могу воспроизвести вашу проблему на минах (Ubuntu 12.04 и Debian 5). Скопируйте / вставьте ваш код работает как шарм ...
—
user2196728
@ user2196728 это работает, но не будет работать, например, если в нем есть $ PWD. в этом-то и дело
—
Robin Green
Вы хотите
—
terdon
$PWD быть расширенным (как /home/vladimir/foo/ ) или нет?
Да, точно. Мой образец был не из реальной жизни, я просто изменил его. Таким образом, $ () появляется в скрипте, но не в текстовом файле. Я понимаю почему, мне просто не нужен этот функционал. На самом деле я не хочу, чтобы что-либо расширялось, ни $ PWD, ни $ (...) команды, и мне все еще нужен удобный способ написания многострочного текста.
—
vladimir