Linuxの下でexpect言語の小さい例
ExpectはLinuxの下でインタラクティブな処理に用いることができ、例えばscpを利用する場合、ターゲットマシンのパスワードを入力する必要があり、jdkを解凍する際にリターンを押す必要があるなどの操作が必要であり、これらはExpectを利用して自動的に完成することができ、人為的な参加を必要としない.
自分で簡単なexpect実装scpを書いて、ターゲットマシンのパスワードを手動で入力しない小さなスクリプトを実現し、受信コマンドラインパラメータを含む.
#!/usr/bin/expect
set username [lindex $argv 0]
#destination file path
set despath [lindex $argv 1]
#destination host password
set passwd [lindex $argv 2]
#file need to be transfer
set filepath [lindex $argv 3]
spawn scp $filepath $username@$despath
expect "password:"
send "$passwd
"
expect eof
#call script
./test.sh root ip:/usr/local abc /usr/local/test.txt