シェルスクリプトでexpectを使った自動ログイン時にsendでパスワードを正しく送る方法

ハマったのでメモ。

これではNGでした。

expect -c "
set timeout 5
spawn "su"
expect "パスワード:"
send "password\n"
interact

sendをくくるダブルクオーテーションに\マークをつけてやらないといけないかったのです。つまり、正しくは次のとおりです。

expect -c "
set timeout 5
spawn "su"
expect "パスワード:"
send \"password\n\"
interact

これで正しくsuで自動ログインできました。

Powered by はてなブログ