[Решено]Хочу не в строчку, а столбик.

Ответить
banzay242
Сообщения: 904
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

[Решено]Хочу не в строчку, а столбик.

Сообщение banzay242 » 29 мар 2018, 12:45

вот так работает:

Код: Выделить всё

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
Последний раз редактировалось banzay242 05 апр 2018, 06:46, всего редактировалось 1 раз.

notauser
Сообщения: 1254
Зарегистрирован: 06 май 2012, 21:00

Re: Хочу не в строчку, а столбик.

Сообщение notauser » 30 мар 2018, 00:29

Да пожалуйста. Если без EOF никуда, то используйте \ для экранирования перевода строки, например.

Код: Выделить всё

cat <<EOF
1 \
2 \
3
EOF

banzay242
Сообщения: 904
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: Хочу не в строчку, а столбик.

Сообщение banzay242 » 30 мар 2018, 06:25

notauser писал(а):
30 мар 2018, 00:29
Да пожалуйста. Если без EOF никуда, то используйте \ для экранирования перевода строки, например.

Код: Выделить всё

cat <<EOF
1 \
2 \
3
EOF
благодарю! если мне надо скажем 100, то везде \ ставить надо, столбец экранировать не как нельзя? EOF удобная штука, только не так работает, как в простом скрипте.

banzay242
Сообщения: 904
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: Хочу не в строчку, а столбик.

Сообщение banzay242 » 30 мар 2018, 06:43

в простм скрипте столбец можно экранировать в переменную, здесь как то по другому все должно выглядеть.

banzay242
Сообщения: 904
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: Хочу не в строчку, а столбик.

Сообщение banzay242 » 30 мар 2018, 07:44

chroot $PWD/ << EOF
1
2
3
EOF
чем можно заменить чтоб работало? if fi, do done?, какими то встроенными переменными?

notauser
Сообщения: 1254
Зарегистрирован: 06 май 2012, 21:00

Re: Хочу не в строчку, а столбик.

Сообщение notauser » 31 мар 2018, 21:45

Код: Выделить всё

echo `cat<<EOF
1
2
3
EOF`
А вообще есть всякие tr, sed, (g)awk и иже с ними. Может проще сказать, что есть и что хотите получить? А то может оказаться, что этот самый EOF проще "перенести" что-бы формировать список параметров (использовать более-менее по назначению, что ли)?
Вдруг кто и поможет. А так продолжим играть в иногда захватывающую и местами опас`т*^?/.'ную игру в закарючки. Можете попробовать

Код: Выделить всё

cd <куда-то> | ls `cat<<EOF
<дир1_в_этом_куда-то>
<дир2_в_этом_куда-то>
EOF`

banzay242
Сообщения: 904
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: Хочу не в строчку, а столбик.

Сообщение banzay242 » 02 апр 2018, 06:43

это скрипт обновления в чрут не входя в него. если мне нужно обработать какой нибудь дистрибутив то бишь удалить кучу программ и поставить кучу на свое усмотрение, то писать программы в строчку или расставлять слеши после каждой неудобно. заводить для этой цели отдельный файл не удобно (до этого было так).
скрипт:

Код: Выделить всё

#!/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 "Готово"

notauser
Сообщения: 1254
Зарегистрирован: 06 май 2012, 21:00

Re: Хочу не в строчку, а столбик.

Сообщение notauser » 04 апр 2018, 20:12

Код: Выделить всё

urpmi --auto `tr -s '\n' ' '<<EOF1
<пакет1>
<пакет2>
...
<пакетN>
EOF1`
попробуйте.

banzay242
Сообщения: 904
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: Хочу не в строчку, а столбик.

Сообщение banzay242 » 05 апр 2018, 06:39

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' ' '"

banzay242
Сообщения: 904
Зарегистрирован: 18 авг 2017, 10:50
Operating system: MATE в релизе R10
Откуда: Уфа Омск

Re: Хочу не в строчку, а столбик.

Сообщение banzay242 » 05 апр 2018, 06:45

Вот так работает в теле 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 "Готово"
Благодарю огромное! век живи век учись тему закрываю.

Ответить

Вернуться в «Обсуждение ROSA Fresh R9-R11.1 (платформа 2016.1)»