LINUX.ORG.RU
ФорумAdmin

bash

 ,


0

1

Всем привет!

Подскажите, как с помощью echo записать в файл текст типа:

строка 1
строка 2
строка 3

Текст - скрипт на баше, поэтому нужно передать его в том виде в каком есть.

Ответ на: комментарий от zolden

`cat aaa.sh > bbb.sh` еще есть `cp` (да-да).

вообще, не очень понятно как ты читаешь исходный файл и что с ним делаешь... построчно можно и без ключа '-e' все выводить echo в другой файл, типа `echo $str >> output.sh`

BigAlex ★★★ ()

ну если у тебя уже в файле есть какая-та запись, то
echo 'blabla' > file перепишет файл, а
echo 'blabla' >> file допишет.

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

Смысл такой - я правлю установочный скрипт софтины Cisco Any Connect. По умолчанию при установке в дебиан она ломает initramfs из-за неправильных хедеров в файле vpnagentd_init. Я хочу переписать установочный скрипт так, чтобы в процессе установки содержимое этого файла полностью заменялось тем, что я укажу с уже поправленными хедерами.

Таким образом в инсталляционный скрипт будет записан полный текст файла vpnagentd_init.

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

все очень запутанно. но ты действиетльно не можешь подправить sed'ом хидеры в vpnagentd_init? можно в несколько приемов

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

Честно говоря никогда с Sed не сталкивался. Заменить конкретные неправильные строки на верные и дописать новых - было бы идеально.

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

ну, там можно по номеру строки, например. а так вообще классический вариант `sed -i 's/aaa/bbb/' file`

BigAlex ★★★ ()

Для большого объёма текста классический способ - использование cat и EOF. Т.к. при этом строки могут быть любые и никак не интерпретируются bash'ем, записываются в файл как есть.

test.sh:

#!/bin/bash

cat > test.txt <<EOF
line1
line2
line3
EOF
echo done

$ chmod +x test.sh
$ ./test.sh 
done
$ cat test.txt
line1
line2
line3
router ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.