Я хочу запустить скрипт оболочки, sudo apt-get update, автоматически вставить пароль для sudo и автоматически нажать клавишу ввода.
Я пробовал:
#!/bin/bash
sudo apt-get update
expect "[sudo] password for username: "
send "password"
У вас есть правильная идея, использование expect - правильный инструмент. Однако ваш синтаксис неверен. Попробуйте следующее:
#!/bin/bash
#some instructions ....
#the <<-EOD ... EOD syntax is called a "heredoc" and allows to send multiple instructions to a command
expect <<-EOD
#process we monitor
spawn sudo apt-get update
#when the monitored process displays the string "[sudo] password for username:" ...
expect "[sudo] password for username:"
#... we send it the string "password" followed by the enter key ("\r")
send "password\r"
#we exit our expect block
EOD