schroot: передать команду для выполнения, как если бы она была в оболочке

Я хочу сделать что-то вроде:

schroot -c name -u root "export A=3 && export B=4"

но я получаю ошибку:

Failed to execute “export”: No such file or directory

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

3 ответа

Решение

Рекомендую:

schroot -c name -u root sh -c "export A=3 && export B=4"

Это запускает оболочку с опцией '-c', указывающей ей (оболочке) прочитать следующий аргумент как команду (скрипт), которую нужно выполнить. Та же самая техника работает с другими аналогичными командами: 'su', 'nohup', ...

schroot -c name -u root -- export A=3 && export B=4

Убедитесь, что /etc/schroot/schroot.conf имеет

run-exec-scripts=true
run-setup-scripts=true

Вы могли бы попробовать

schroot -c name -u root "/bin/bash -c 'export A=3; export B=4'"

но я впервые слышу о Шруте. И экспорт выглядит так, будто он бесполезен... даже если запускать двойные кавычки напрямую из командной строки, кажется, что дочерняя оболочка не хочет влиять на среду родителя.

Другие вопросы по тегам