Как выбрать ответ для интерактивного приглашения во время установки из сценария оболочки

Можно ли иметь неинтерактивную оболочку входа в систему (не вызываемую с помощью --login или -l)?

ДА.

$ (exec -a '-' bash -c 'shopt -q login_shell && echo login shell')

Однако обратите внимание, что / etc / profile не будет использоваться для оболочки входа без взаимодействия, если не указан аргумент - login .

Обычная идиома, вызывающая неинтерактивную оболочку входа в систему:

$ su - someuser -c somecommand

Но при этом страдает тот факт, что / etc / profile не запускается.

Это поведение можно изменить, но оно включает настройку исходного кода Bash во время компиляции, раскомментируя параметр, найденный в config-top.h :

/* Define this to make non-interactive shells begun with argv[0][0] == '-'
run the startup files when not in posix mode. */
/* #define NON_INTERACTIVE_LOGIN_SHELLS */

Когда я исследовал это su аномалия , я обнаружил, что другие оболочки, включая zsh и dash , не имеют этого несоответствия.

1
29.05.2017, 12:51
1 ответ

Система apt/dpkg позволяет выполнять автоматическую или неинтерактивную установку.

Это включает установку для переменной DEBIAN_FRONTEND значения noninteractive и использование флага -y. Например:

export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]

Если вы получаете ошибки, вам может потребоваться установить параметр q, чтобы убедить dpkg в том, что вы на самом деле выполняете неинтерактивную установку: DEBIAN_FRONTEND=noninteractive apt-get -yq install [имя пакета].

В некоторых случаях может быть проще следовать подсказкам для некоторых пакетов, которые вы устанавливаете позже в том же процессе скрипта/оболочки, в этом случае вы захотите отменить экспорт переменной DEBIAN_FRONTEND. :

unset DEBIAN_FRONTEND

Для предварительной настройки параметров конфигурации полезно иметь установленный debconf-utils, который будет использовать команду debconf-get-selections:

sudo apt-get install debconf-utils

Ресурсы, которые вы можете найти полезное

4
27.01.2020, 23:13

Теги

Похожие вопросы