LINUX.ORG.RU
ФорумAdmin

Из скрипта выполнить в chroot несколько команд

 ,


1

1

Здравствуйте, коллеги! Нужно из главного скрипта войти в chroot и там выполнить несколько комманд. Я соорудил:

chroot ${WORK_DIR}/chroot <<EOF
echo $ROOT_PASSWD | passwd root --stdin
[ -d /srv/mnt ] || mkdir /srv/mnt
EOF

Вроде устанавливается пароль для root и создается /srv/mnt, вот только… на экране отображается все, что находится между <<EOF EOF, а это как-то не красиво. Как избавиться от этого никчемушного вывода?


Ух ты я и не думал про такой трюк с пайпом в чрутнутый шелл.

Как-то так:

chroot ${WORK_DIR}/chroot /bin/sh -c "echo $ROOT_PASSWD | passwd root --stdin ; [ -d /srv/mnt ] || mkdir /srv/mnt"

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от JaneDoe
chroot ${WORK_DIR}/chroot 2>/dev/null <<EOF
...

Спасибо!

Именно то, что нужно!

Правда… Я не очень понимаю эту конструкцию.

2> /dev/null Это же перенаправление stderr в треш. Почему же тогда перестали отображаться команды между <<EOF EOF?

Кстати, вчера я делал нечто подобное, но у меня не получилось. Видимо я сам где-то ошибся.

HighMan
() автор топика
Последнее исправление: HighMan (всего исправлений: 1)
Ответ на: комментарий от iliyap

Потому что трассировка команд идёт в stderr.

Во как…

Спасибо большое за разъяснение.

Век живи - век учись… Результат, все равно един! Дураком помрешь :)

HighMan
() автор топика