LINUX.ORG.RU

[bash] Многострочная переменная > файл: как?


1

0

Есть скрипт. В нем прописана переменная следующим образом:

config_files='/etc/file1.conf attr1=value1 attr2=value2
/etc/file2.conf attr1=value1';

Как видно, тут два сложных момента: она многострочная, и содержит пробелы.

Задача: записать значение переменной в файл в таком же виде. Иными словами, в файле должно оказаться:

/etc/file1.conf attr1=value1 attr2=value2
/etc/file2.conf attr1=value1

На ум мне приходит лишь два способа, и оба не работают: Первый - делать банальное echo $config_files > some_file, но тогда всё кладется в одну строчку, Второй - делать через for, но тогда каждый кусок кладется на отдельную строку вне зависимости от того как оно там было изначально.

Как же сие обойти?

┌[~]
└> config_files='/etc/file1.conf attr1=value1 attr2=value2
> /etc/file2.conf attr1=value1'
┌[~]
└> IFS="\n"
┌[~]
└> echo $config_files 
/etc/file1.co f attr1=value1 attr2=value2
/etc/file2.co f attr1=value1
┌[~]
└> echo $config_files > file
┌[~]
└> cat file 
/etc/file1.co f attr1=value1 attr2=value2
/etc/file2.co f attr1=value1

:-)

GotF ★★★★★ ()
Ответ на: комментарий от nisdevi

Если б так было можно я бы не спрашивал :)

Проблема именно в том что на входе именно одна переменная, и именно такого дикого вида. Можно считать это условием задачи.

aix27249 ()
Ответ на: комментарий от nisdevi

Во, сработало :) Огромное спасибо, что-то я протупил :)

aix27249 ()
Ответ на: комментарий от aix27249

что-то вы путаете, ничего не обрезается. В zsh, кстати, даже без кавычек корректно выводится

zolden ★★★★★ ()

Блин, ну сколько можно уже? Одно и то же не реже раза в неделю.

AnDoR ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.