シェルスクリプトでSudo apt-get update
を開始し、Sudo
のパスワードを自動的に挿入し、Enterキーを自動的に押すようにします。
私はもう試した:
#!/bin/bash
Sudo apt-get update
expect "[Sudo] password for username: "
send "password"
あなたができる
#!/bin/bash
echo password | Sudo -S apt-get update
man Sudo
および Stackoverflow から
-S
、--stdin
プロンプトを標準エラーに書き込み、端末デバイスを使用する代わりに標準入力からパスワードを読み取ります。パスワードの後には改行文字が必要です。
パスワードに特殊文字が含まれている場合は、echo 'p@ssowrd'
のようにパスワードを単一引用符で囲みます。
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