Можно ли создать полностью автоновный bash скрипт, не требующий ввода руками?
Всегда ли можно создать bash скрипт, чтобы он работал вообще без ввода данных?
То есть, я хочу создать такой new_os_init.sh, чтобы он устанавливал всё, что мне нужно, создавал пользователя, группу, настраивал visudo.... вот короче всё, что я сейчас делаю вручную на новом сервере.
Всегда ли такое возможно или хоть иногда, но нужно всё равно что-то вводить руками?
Если всегда, то в какую сторону копать: как сделать, чтобы он 1) отвечал yes 2) выбирал тот, вариант ответа, который мне нужен и т.п.
Разумеется, я заранее знаю, что где надо отвечать.
Если вы делаете повторяющиеся действия при создании нового сервера, то его установку логично прописать в preseed, а настройки - в ansible, например.
А не колхозить скрипты.
Большинство утилит в linux могут работать в режиме "скрипта"(например, parted -s ...), то есть производить автоматизированное принятие заданного ответа или действия по умолчанию(например, rm -f ... удалять без подтверждения).
В крайнем случае можно найти утилиты которые это умеют. Например, для задания пароля после создании пользователя вместо passwd можно использовать chpasswd: echo "root:1234" | chpasswd
Если же утилита не поддерживает режим скрипта и нету подходящих замен то можно воспользоваться утилитой expect о которой ранее писал Константин.