應用執行在ubuntu系統中,由於需要自動修改網絡卡ip,所以必須先獲取root許可權。
網上查了一下都是推薦使用expect來實現,首先安裝expect,直接輸入
sudo apt-get install expect
編寫s**件,以root許可權執行應用
#!/usr/bin/expect -f
expect "密碼:"
send "1\r\n"
interact
第一句,就是告訴用expect來執行當前sh
第二句,用spawn開個程序,用來模擬輸入要執行的命令,在此處是呼叫乙個bash指令碼
第三句,是重點以及最容易出錯的地方,雙引號裡面的內容。必須跟你在終端中輸入
出現的提示一致,我的是中文環境,所以提示的是 「密碼:」,如果你的是英文環境可能是"password:",不管是什麼直接複製過來即可,而且空格不能丟。
第四句,「1」是root的密碼,後面的「\r\n」不能少,如果你是中文環境是「\r\n」,如果是英文環境"\r"即可。
ubuntu一般都支援在桌面上新增快捷圖示,通過快捷圖示開啟的時候,預設是不會啟動乙個終端的,所以你會發現打不開。右鍵快捷圖示,用gedit或者plugi文字編輯器開啟,將terminal=true,這樣執行的時候,會彈出乙個除錯終端,但是不用輸入密碼了。
expect 的小點 expect的使用
expect password send 123456 r 注意 expect 和字串 password 中間有乙個空格,send和字串 123456 r 中間有乙個空格。因為expect和send都是乙個命令,只有加空格才能與引數分開。expect 注意 expect與 之間有乙個空格,因為這樣e...
expect命令使用
expect 是由don libes基於tcl tool command language 語言開發的,主要應用於自動化互動式操作的場景,借助expect處理互動的命令,可以將互動過程如 ssh登入,ftp登入等寫在乙個指令碼上,使之自動化完成。尤其適用於需要對多台伺服器執行相同操作的環境中,可以大...
expect 使用例項
shell指令碼實現ssh自動登入遠端伺服器示例 usr bin expect spawn ssh root 192.168.22.194 expect password send 123 r expect interact expect是乙個用來處理互動的命令。借助expect,我們可以將互動過程...