Страница 1 из 1
[Решено]Хочу не в строчку, а столбик.
Добавлено: 29 мар 2018, 12:45
banzay242
вот так работает:
Код: Выделить всё
chroot $PWD/ << EOF
urpmi --auto libreoffice-pagination libreoffice-pagination nano
EOF
вот так не работает:
Код: Выделить всё
chroot $PWD/ << EOF
urpmi --auto
libreoffice-pagination
libreoffice-pagination
nano
EOF
вот так тоже не работает:
Код: Выделить всё
chroot $PWD/ << EOF
`urpmi --auto
libreoffice-pagination
libreoffice-pagination
nano`
EOF
Re: Хочу не в строчку, а столбик.
Добавлено: 30 мар 2018, 00:29
notauser
Да пожалуйста. Если без EOF никуда, то используйте \ для экранирования перевода строки, например.
Re: Хочу не в строчку, а столбик.
Добавлено: 30 мар 2018, 06:25
banzay242
notauser писал(а): 30 мар 2018, 00:29
Да пожалуйста. Если без EOF никуда, то используйте \ для экранирования перевода строки, например.
благодарю! если мне надо скажем 100, то везде \ ставить надо, столбец экранировать не как нельзя? EOF удобная штука, только не так работает, как в простом скрипте.
Re: Хочу не в строчку, а столбик.
Добавлено: 30 мар 2018, 06:43
banzay242
в простм скрипте столбец можно экранировать в переменную, здесь как то по другому все должно выглядеть.
Re: Хочу не в строчку, а столбик.
Добавлено: 30 мар 2018, 07:44
banzay242
chroot $PWD/ << EOF
1
2
3
EOF
чем можно заменить чтоб работало? if fi, do done?, какими то встроенными переменными?
Re: Хочу не в строчку, а столбик.
Добавлено: 31 мар 2018, 21:45
notauser
А вообще есть всякие tr, sed, (g)awk и иже с ними. Может проще сказать, что есть и что хотите получить? А то может оказаться, что этот самый EOF проще "перенести" что-бы формировать список параметров (использовать более-менее по назначению, что ли)?
Вдруг кто и поможет. А так продолжим играть в иногда захватывающую и местами опас`т*^?/.'ную игру в закарючки. Можете попробовать
Код: Выделить всё
cd <куда-то> | ls `cat<<EOF
<дир1_в_этом_куда-то>
<дир2_в_этом_куда-то>
EOF`
Re: Хочу не в строчку, а столбик.
Добавлено: 02 апр 2018, 06:43
banzay242
это скрипт обновления в чрут не входя в него. если мне нужно обработать какой нибудь дистрибутив то бишь удалить кучу программ и поставить кучу на свое усмотрение, то писать программы в строчку или расставлять слеши после каждой неудобно. заводить для этой цели отдельный файл не удобно (до этого было так).
скрипт:
Код: Выделить всё
#!/bin/sh
PWD=`pwd`/mnt
echo "монтируем ext3fs.img"
mount sys/LiveOS/ext3fs.img $PWD
echo "монтируем dev sys proc копируем resolv.conf"
mount --bind /dev $PWD/dev
mount --bind /sys $PWD/sys
mount --bind /proc $PWD/proc
rm $PWD/etc/resolv.conf
cp /etc/resolv.conf $PWD/etc/resolv.conf
chroot $PWD/ << EOF
##################
echo Удалим файлы
#urpme --auto libreoffice-pagination \
nano
echo Удаляем зависимости
urpme --auto --auto-orphans
##################
echo Обновляем систему
urpmi --auto --auto-update
echo Установим файлы
#urpmi --auto libreoffice-pagination \
nano
##################
echo создаем файл rpmlist
rpm -qa | sort > /rpm.list
echo создаем файл с датой обновления
date > /date.txt
echo удаляем историю
cp -f /dev/null /root/.bash_history
cp -f /dev/null /home/live/.bash_history
#################
EOF
echo "размонтируем dev sys proc"
umount $PWD/{dev,sys,proc}
umount $PWD/
echo "Готово"
Re: Хочу не в строчку, а столбик.
Добавлено: 04 апр 2018, 20:12
notauser
Код: Выделить всё
urpmi --auto `tr -s '\n' ' '<<EOF1
<пакет1>
<пакет2>
...
<пакетN>
EOF1`
попробуйте.
Re: Хочу не в строчку, а столбик.
Добавлено: 05 апр 2018, 06:39
banzay242
notauser писал(а): 04 апр 2018, 20:12
Код: Выделить всё
urpmi --auto `tr -s '\n' ' '<<EOF1
<пакет1>
<пакет2>
...
<пакетN>
EOF1`
попробуйте.
если вот так?
chroot $PWD/ << EOF
urpmi --auto `tr -s '\n' ' '
<пакет1>
<пакет2>
...
<пакетN>
EOF
мне нужно чтоб столбик был в теле, идея понятна буду пробовать.
пока так получилось "неверная подстановка: в `tr -s '\n' ' '"
Re: Хочу не в строчку, а столбик.
Добавлено: 05 апр 2018, 06:45
banzay242
Вот так работает в теле EOF
Код: Выделить всё
urpmi --auto `tr -s '\n' ' '<<EOF1
wine
qt5-fsarchiver
nano
EOF1`
EOF1`, зачем ` в конце только не понял.
итоговый файл получился такой, и все работает:
Код: Выделить всё
#!/bin/sh
PWD=`pwd`/mnt
echo "монтируем ext3fs.img"
mount sys/LiveOS/ext3fs.img $PWD
echo "монтируем dev sys proc копируем resolv.conf"
mount --bind /dev $PWD/dev
mount --bind /sys $PWD/sys
mount --bind /proc $PWD/proc
rm $PWD/etc/resolv.conf
cp /etc/resolv.conf $PWD/etc/resolv.conf
chroot $PWD/ << EOF
##################
echo Удалим файлы
urpme --auto `tr -s '\n' ' '<<EOF1
nano
EOF1`
##################
echo Удаляем зависимости
urpme --auto --auto-orphans
##################
echo Обновляем систему
urpmi --auto --auto-update
##################
#echo Установим файлы
urpmi --auto `tr -s '\n' ' '<<EOF2
nano
EOF2`
##################
echo создаем файл rpmlist
rpm -qa | sort > /rpm.list
##################
echo создаем файл с датой обновления
date > /date.txt
##################
echo удаляем историю
cp -f /dev/null /root/.bash_history
cp -f /dev/null /home/live/.bash_history
##################
EOF
echo "размонтируем dev sys proc"
umount $PWD/{dev,sys,proc}
umount $PWD/
echo "Готово"
Благодарю огромное! век живи век учись тему закрываю.