中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell學習之expect命令

發布時間:2020-08-19 13:55:58 來源:網絡 閱讀:2604 作者:feitongxiaoke01 欄目:安全技術

本文主要包括兩個部分:expect命令的使用示例和對該示例進行說明。

1.    expect命令的使用示例

    IP=192.168.1.18
    PASS=passwd
    expect -c "
             settimeout 60;
             spawn ssh root@192.168.0.1
             expect{
                     \"*yes/no*\"{send \"yes\r\"; exp_continue}
                     \"*password*\"{send \"$PASS\r\";}
                    }
                    expect eof"

2.    針對示例,對expect命令的使用進行說明

(1)   -c 標志之后的命令在任何腳本之前執行,該命令應當被引用以防止被 shell 破壞。

(2)   set timeout 60:設置超時時間,計時單位為秒,timeout -1 為永不超時。

(3)   spawnexpect的初始命令,用于啟動一個進程,之后所有的expect操作都在這個進程中進行,如果沒有spawn語句,整個expect就無法進行下去,當然,如果真的不要spawn過程也沒有關系,雖然這樣就沒有辦法單獨執行,但是這個腳本可以與任何調用它的進程進行交互。

(4)   expect用于等候一個相匹配的輸出,一旦匹配就執行后面的動作。在這個例子中,expect是依附于spawn命令的,當spawn后面的命令執行完畢后,expect命令就匹配命令執行后的關鍵詞(yes/no),如果匹配到,就執行后面{ }中動作。

(5)   expect的匹配可以看做是一個循環,通常匹配之后都會退出語句,但如果有exp_continue,則可以不斷循環匹配。在該例子中,遇到“yes/no”時,送出“yes”,然后繼續expect,遇到密碼提示時,送出密碼,送完后退出。

(6)   eof是必須去匹配的,在 spawn 進程結束后會向 expect 發送 eof;如果不去匹配,有時也能運行,比如 sleep 多少秒后再去 spawn 下一個命令,但是不要依賴這種行為,很有可能今天還可以,明天就不能用了。但是,如果不需要spawn的進程結束,不能 expect eof 了,如下面的例子:

      #!/usr/bin/expect
 
      set timeout 30
      spawn ssh 10.192.224.224
      expect"password:"
      send"mypassword\n"
      expect "*$"
      send "mkdirtmpdir\n"
      expect"*$"

手動操作時 ssh 實際上也不會自己結束除非你 exit;所以你只能expect bash 的提示符,當然也可以是機器名等,這樣才可以在遠程創建一個目錄。

 

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石城县| 蓬溪县| 明光市| 乐陵市| 安吉县| 乌恰县| 景德镇市| 枣庄市| 怀仁县| 南澳县| 青岛市| 三穗县| 固安县| 大洼县| 伊春市| 修水县| 鹤岗市| 叙永县| 开江县| 贵港市| 宁海县| 辰溪县| 沂水县| 建德市| 葫芦岛市| 高邑县| 泾源县| 元谋县| 炎陵县| 黑龙江省| 吕梁市| 布尔津县| 宣汉县| 巴彦县| 出国| 延长县| 南丰县| 无极县| 齐河县| 玉树县| 巢湖市|