如何讓腳本自己輸入密碼或者yes no

我們在/目錄下創建一個dir文件夾

sudo mkdir /dir

這個時候終端會提示我們輸入密碼

一般我們就是手動正確輸入密碼後就會在根目錄下創建一個dir文件夾

但是現在我們要利用expect在腳本里自動輸入密碼

首先安裝expect相關的東東

sudo apt-get install tcl

sudo apt-get install expect


接着我們在~/下創建一個a.exp文件

ubuntu@flm$ gedit a.exp&

#!/usr/bin/expect  

set timeout 20  
set passwd "3"
set passwderror 0  
spawn sudo mkdir /flm 
expect {  
    "*assword*:*" {  
        if { $passwderror == 1 } {  
        puts "passwd is error"  
        exit 2  
        }  
        set timeout 1000  
        set passwderror 1  
        send "$passwd\r"  
        exp_continue  
    }  
    "*es/no)?*" {  
        send "yes\r"  
        exp_continue  
    }  
    timeout {  
        puts "timeout"  
        exit 3 
    }  

}

然後修改文件的執行權限

sudo chmod 777 a.exp

然後執行

./a.exp

就可以在/下創建一個dir文件夾了

注意如果想要在expect腳本里面去執行另外一個shell腳本,可以將這裏的

spawn sudo mkdir /flm 

換成

spawn sh shell_script_file

shell_scrpit_file 就是腳本的路徑



發佈了46 篇原創文章 · 獲贊 11 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章