免互動expect eof和interact的區別

2021-10-09 17:59:20 字數 1154 閱讀 8505

二者都是結束符號

expect eof :等待執行結束,用於執行自動化任務,無需後續繼續互動,直接完成並退出。

interact:執行完成後保持互動狀態,把控制權交給使用者,不是免互動的狀態,需要自行輸入需要執行的命令。

以ftp服務為例,在伺服器安裝vsftp服務,修改配置檔案允許匿名使用者登入和讀寫。在客戶機安裝ftp服務,用於遠端登入伺服器,並編寫免互動指令碼,執行。

(內含在expect指令碼中設定變數的方法)

當使用interact結束符

#!/usr/bin/expect

set host [lindex $ar** 0]

//在expect指令碼中設定變數的方法,[lindex $ar** 0]為位置變數,相當於bash中的$1,用於輸入登入的主機位址

spawn ftp $host

expect "name"

//以ftp匿名使用者登入

expect "password:"

//免密,直接回車

expect "ftp>*" 當匹配到ftp>*登入成功,停留在此狀態,控制權給使用者

interact

執行結果

當使用expect eof結束符

#!/usr/bin/expect

set host [lindex $ar** 0]

spawn ftp $host

expect "name"

expect "password:"

expect "ftp>*"

expect eof

執行結果

登入成功,停留在ftp>狀態時,進行輸入,會無法執行,直接退出服務,無控制權

不進行任何輸入,等待後也會退出服務

實現免互動 Here Document

使用i o重定向的方式將命令列表提供給互動式程式或命令,比如ftp cat或read命令。是標準輸入的一種替代品可以幫助指令碼開發人員不必使用臨時檔案來構建輸入資訊,二十直接就地生產輸入。here document也可以與非互動式程式和命令一起使用。命令 標記 內容 標記之間是傳入的內容 標記 標記...

Shell 程式設計 免互動

here document使用i o重定向的方式將命令列表提供給互動式程式或命令,比如 ftp cat 或 read 命令。是標準輸入的一種替代品可以幫助指令碼開發人員不必使用臨時檔案來構建輸入資訊,而是直接就地生產出乙個 檔案 並用作 命令 的標準輸入。here document 也可以與非互動式...

Shell程式設計之免互動

here document變數設定 here document格式控制 expect概述 expect語法 expect執行方式 使用i o重定向的方式將命令列表提供給互動式程式 標準輸入的一種替代品 語法格式 命令 一般用eof eof1 標記可以使用任意合法字元 2 結尾的標記一定要頂格寫,前面...