使用expect實現shell互動式程式設計

2021-10-06 23:07:36 字數 1501 閱讀 6873

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是否正確 第三...