向壹個腳本傳遞參數,bash shell是使用$1,$2...來接收參數的,而epxect則將腳本的執行參數保存在數組$argv中,在腳本中壹般將其賦值給變量:set 變量名 [lindex $argv 參數]
實例:
寫壹個自動登陸遠程主機的腳本,通過參數傳遞主機名,帳戶,密碼
1)編寫腳本
#!/usr/bin/expect
set ip [lindex $argv 0]
set username [lindex $argv 1]
set passwd [lindex $argv 2]
spawn ssh -l $username $ip
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "$passwd\r" }
}
#expect eof
interact
註意:若登陸後便退出遠程終端,則寫expect eof即可。
2)執行腳本
expect autologin.sh 172.24.6.29 root redhat