とよぶ

歌いながらコード書いてます

expectコマンドで入力待ち処理を自動化

VPNの接続にopenvpn使っていて、起動スクリプトでユーザー名とパスワードを求められるのめんどくさい。。。
ってことでexpectで自動化。

まずはexpectをインストール

$ sudo apt-get install expect

実行スクリプトを作成

$ vim openvpn.exp
$ cat openvpn.exp
#!/usr/bin/expect
set sudopass "XXXXX"
set username "XXXXX"
set password "XXXXX"
spawn sudo /etc/init.d/openvpn start
expect "\[sudo\]*"
send -- "$sudopass\n"

expect {
    "Autostarting VPN 'ここには/etc/openvpn/*.conf*の部分'" {
        expect "Enter Auth Username:"
        send -- "$username\n"
        expect "Enter Auth Password:"
        send -- "$password\n"
    }
}
interact

とりあえずこれで動く。
でもそもそもopenvpnの設定で最初から設定できないのかな、とは思いましたw
これを使ってstartかstopかrestartくらいは管理するようなスクリプトを書こうかな。