1. expect實現參數傳遞
1.1 實現
$argv 參數數組
expect腳本可以接受從bash傳遞過來的參數。
可以使用[lindex $argv n]獲得,n從0開始,分別表示第一個,第二個,第三個....參數
1.2 樣例
cat telnet.exp
#!/usr/bin/expect
set host [lindex $argv 0]
set passwd [lindex $argv 1]
set passwden [lindex $argv 2]
spawn telnet $host
expect "Password:"
send "$passwd\r"
send "en\r"
send "$passwden\r"
interact
2. bash嵌套expect
2.1 我想這樣使用的原因?
我在登錄交換機時,需要交互式登錄,需要給控制檯發送命令並輸出執行結果;
如果只用expect的話,腳本內含有IP,密碼等敏感信息,除設置腳本權限爲700外,我沒有實現給expect加密;
所以間接的方法是用bash執行expect腳本,然後用shc給bash加密。
2.2 樣例
vim telnet.sh
#!/bin/bash
expect telnet.exp 192.168.x.x 123123456
2.3 shc加密
shc -r -f telnet.sh