expect: автоматизация того, что просит ввести пароль вручную

Некоторые старые CLI-утилиты не берут пароль из stdin — только приглашением. expect скриптует диалог: ждёт паттерн в выводе и посылает ответ. #!/usr/bin/expect spawn passwd testuser expect "New password:" send "S3cur3Pass!\r" expect "Retype new password:" send "S3cur3Pass!\r" expect eof spawn запускает процесс, expect "паттерн" ждёт его в выводе (regex), send пишет в stdin, expect eof — дожидается завершения (без него скрипт выйдет раньше процесса). autoexpect записывает сессию как script, сразу генерируя .exp-файл — писать с нуля не обязательно. expect — крайняя мера для legacy без non-interactive режима; где есть --batch/-y, лучше они. ...

21 июля 2026 г. · llexa