spawn[Expect編程工具語言]

Expect編程工具語言,用來實現自動和互動式任務進行通信。

使用spawn命令來啟動腳本和命令的會話。

下面是一個能用來實現自動執行該命令的Expect腳本:

#!/usr/bin/expect

# Change a login shell to tcsh

set user [lindex $argv 0]

spawn chsh $user

expect "]:"

send "/bin/tcsh "

expect eof

exit

和其他腳本一樣首行指定用來執行該腳本的命令程式,這裡是/usr/bin/expect。程式第一行用來獲得腳本的執行參數(其保存在數組$argv中,從0號開始是參數),並將其保存到變數user中。

第二個參數使用Expect的spawn命令來啟動腳本和命令的會話,這裡啟動的是chsh命令,實際上命令是以衍生子進程的方式來運行的。

隨後的expect和send命令用來實現互動過程。腳本首先等待輸出中出現]:字元串,一旦在輸出中出現chsh輸出到的特徵字元串(一般特徵字元串往往是等待輸入的最後的提示符的特徵信息)。對於其他不匹配的信息則會完全忽略。當腳本得到特徵字元串時,expect將傳送/bin/tcsh和一個回車符給chsh命令。最後腳本等待命令退出(chsh結束),一旦接收到標識子進程已經結束的eof字元,expect腳本也就退出結束。

相關詞條

熱門詞條

聯絡我們