歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux下後台程序完成自動輸入密碼等交互行為的例子

今天要開發一個定時任務,然後加入cron列表中。但是有個問題擺在眼前,腳本的執行中需要輸入數據庫密碼:

mysql -u root -p << SQL
use db;
set names utf8;
`cat task.sql`
SQL

運行上述代碼後,會提示:

Enter password:  

經過搜索,發現expect可以幫助我們完成這件事情:

將上述代碼保存到一個文件中:db.sh,並且編寫如下代碼: 

#!/usr/bin/expect -f
spawn db.sh
expect "Enter password: "
send -- "password\n"
interact
那麼我們運行之後,就會進入數據庫交互接口。 

第一行指示了這個腳本要用哪個程序來運行;

第二行是重點,在EXPECT下啟動了一個我們要執行的程序;

第三行也是重點,我們要告訴expect,當什麼信息出現時需要expect幫助我們完成交互;

第四行就是出現輸入密碼的提示時,要發送的內容;

第五行的意思是保持交互,不要退出。如果沒有這一句,腳本成功登錄數據庫後,會立即退出。

Copyright © Linux教程網 All Rights Reserved