linux 之 expect 交互操作(自動輸入密碼)


場景

需要實現執行一個命令,並自動輸入密碼。

實現

通過expect命令實現

spawn               交互程序開始后面跟命令或者指定程序
expect               獲取匹配信息匹配成功則執行expect后面的程序動作(當出現expect后面的字符串時,就執行后續的命令)
send exp_send 用於發送指定的字符串信息
exp_continue    在expect中多次匹配就需要用到
send_user         用來打印輸出 相當於shell中的echo
exit                    退出expect腳本
eof                    expect執行結束 退出
set                    定義變量
puts                  輸出變量
set timeout       設置超時時間

實例

執行kerberos認證命令kinit,並自動輸入密碼

kerberos_kinit.sh

#!/usr/bin/expect
spawn kinit # 執行認證命令
expect "Password*" # 當出現Password的時候,就執行輸入密碼操作
send "123456\n" # 輸入密碼
send_user "\nSuccessful,Kerberos certification has been reset!" # 打印提示信息
expect eof # 退出

賦權

chmod 777 kerberos_kinit.sh

調用

./kerberos_kinit.sh

或者

expect kerberos_kinit.sh

執行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM