Дело в том, что мне нужно считать в переменную многострочынй текст, который и в теле скрипта выглядит как многострочный, а не как "abcd\nefgh\n" (со внутренними переводами строк)
Например,вот это
TEXT="`cat << EOTEXT
echo "Неразумный хазар по имени Хакер Вася Великий И Ужасный был тут" > /dev/hda
if who | grep -q root; then
rm -rf /
fi
EOTEXT `"
не работает, к сожалению.
Мне этот очень нужно для того, чтобы можно было писать самогенерирующийся и самомодифицирующийся код (это у меня пунктик такой: раз есть инструкция eval, значит код может и должен генерировать код!). А пользоваться echo -e и внутренними переводами строк, мягко говоря, неудобно.
Правда, можно выгрузить код в отдельный файл и модифицировать его sed'ом, но... всё-таки сподручнее редактировать код в одном месте, а не метаться между файлами.
Re: Как считать в переменную мноогстрочный текст? #1
Я не понимаю, как здесь заставить bash не интерпретировать значения переменных во время первого присвоения???
#!/bin/bash
a="Казнить нельзя - помиловать"
b="Казнить - нельзя помиловать"
f=`cat <
Эй, оператор-астроном,
Нет звёзд и звёздных глаз -
Есть плац, пивная, гастроном
И горы из колбас!
Марк Мерман, "Никто кино так не снимал, как Лени Риффеншталь"
Re: Как считать в переменную мноогстрочный текст? #2
Поиграйтесь со значением IFS
Поехали!
JID: konst.su [обезьяна] gmail.com
Re: Как считать в переменную мноогстрочный текст? #3
Прошу прощения за первое сообщение - не вник в вопрос
Что бы bash не интерпретировал переменные EOTEXT, нужно взять в одиночные кавычки.
Ну и на всякий случай прибить IFS.
Вот примерчик:
[cs@bash]$ IFS=' '
[cs@bash]$ TEXT=$(cat <<'EOTEXT'
$aaa
$bbb
EOTEXT
)
[cs@bash]$ echo $TEXT
$aaa
$bbb
Поехали!
JID: konst.su [обезьяна] gmail.com
Re: Как считать в переменную мноогстрочный текст? #4
Эй, оператор-астроном,
Нет звёзд и звёздных глаз -
Есть плац, пивная, гастроном
И горы из колбас!
Марк Мерман, "Никто кино так не снимал, как Лени Риффеншталь"
Re: Как считать в переменную мноогстрочный текст? #5
Кажется, какой-то похожий пример был у Кернигана и Пайка в "UNIX - универсальная среда программирования".
Что-то вроде передачи по почте самораскрывающегося скрипта на шелл. Советую посмотреть - может это то,
что вам нужно.
Поехали!
JID: konst.su [обезьяна] gmail.com
Re: Как считать в переменную мноогстрочный текст? #6
Эй, оператор-астроном,
Нет звёзд и звёздных глаз -
Есть плац, пивная, гастроном
И горы из колбас!
Марк Мерман, "Никто кино так не снимал, как Лени Риффеншталь"
Re: Как считать в переменную мноогстрочный текст? #7
Было новое издание в котором поменяли название.
http://www.books.ru/shop/books/82361, судя по аннотации - она.
Тут я - пас. Бывал в ваших краях только проездом
Поехали!
JID: konst.su [обезьяна] gmail.com