expect是乙個自動化互動套件,主要應用於執行命令和程式時,系統以互動形式要求輸入指定字串,實現互動通訊。
expect自動互動流程:
spawn啟動指定程序-》expect獲取指定關鍵字-》send向指定程式傳送指定字元-》執行完成退出。
expect常用命令總結:
spawn 互動程式開始,後面跟命令或者指定程式
expect 獲取匹配字串,匹配成功則執行expect後面的程式動作
send 用於傳送指定的字串資訊
exp_continue 在expect中多次匹配就需要用到,相當於迴圈中continue
send_user 用來列印輸出 相當於shell中的echo
exit 退出expect指令碼
eof expect執行結束,退出
set 定義變數
puts 輸出變數
set timeout 設定超時時間
interact 等待使用者輸入
expect -c後面跟expect命令體。
expect -d 1debug模式,1標識開啟,0標識禁用。
send "ls\r"send後面命令中記得加上\r或\n,標識回車。
#!/usr/bin/bash
expect -c "
set timeout 30
spawn scp $filename root@$ip:/home
expect
password
\"#\"
} expect eof;
"
3.expect呼叫ssh命令
#!/usr/bin/bash
expect -c "
set timeout 30
spawn ssh $filename root@$ip
expect
\"password\"
\"]#\"
} expect eof;
"
另外一種寫法
#!/usr/bin/bash
expect
spawn ssh root@$ip
expect
"password"
} expect "]#"
expect "]#"
expect "]#"
expect eof
eof
shell使用expect實現sftp的自動互動
檢查是否安裝expect 直接在linux上執行 expect 如提示無此命令則未安裝 安裝expect 切換到root使用者下,執行 yum install expect expect簡單使用 1 在需要執行的指令碼中調取expect指令碼 vim exec expect sftp.sh usr ...
shell與expect結合使用
摘自 在linux作業系統下,使用指令碼自動化,一般由兩種方案,方案一 telnet ftp,方案二 ssh scp expect。以下主要使用ssh scp expect為例進行說明使用方式。第一步 安裝expect yum y install expect 第二步 驗證,執行expect是否正確...
shell與expect結合使用
在linux作業系統下,使用指令碼自動化,一般由兩種方案,方案一 telnet ftp,方案二 ssh scp expect。以下主要使用ssh scp expect為例進行說明使用方式。第一步 安裝expect yum y install expect 第二步 驗證,執行expect是否正確 第三...