我有一個腳本(dobrt),它在執行了password.How我可以寫一個腳本,執行dobrt並自動提供問它要求的密碼。如何使用shell腳本時,界面會要求提供密碼就
當我執行./dobrt -p file.txt
時,系統要求輸入密碼。我想要密碼由腳本自動發送。這裏是輸出
$ ./dobrt -p file.txt
Found 194 tests to execute
------------ 2010 February 11 11:27:33 ------------
Password: ***************
我嘗試使用shell和expecxt腳本。這是我做的。
我有2個腳本。我從第一個腳本(run_dobrt.sh)調用第二個腳本(run_dobrt.exp)。
腳本1:run_dobrt.sh
#!/bin/ksh
TESTCASE_HOME="/home/abhijeet/code/testcases";
TESTCASE_LIST="file.txt";
PASSWORD="*****";
echo "Running Expect Script"
`./run_dobrt.exp $TESTCASE_HOME $TESTCASE_LIST $PASSWORD`
腳本2:run_dobrt.exp
#!/usr/local/bin/expect -f
set TESTCASE_HOME [lindex $argv 0];
set TESTCASE_LIST [lindex $argv 1];
set PASSWORD [lindex $argv 3];
set timeout 200
spawn $TESTCASE_HOME/dobrt -p $TESTCASE_HOME/$TESTCASE_LIST
expect "*?assword:*" {send -- "$PASSWORD\r";}
expect eof
現在,當我運行run_dobrt.sh我得到以下錯誤 run_dobrt。 sh [20]:spawn:找不到 如何擺脫此錯誤並完成此任務?請幫忙。
具有不同密碼的用戶使用此腳本。因此不適合對密碼進行硬編碼。 – Abhijeet 2010-02-11 07:32:37
我沒有正確解釋自己。我的意思是讓用戶通過命令行參數輸入密碼。不要在應用程序內硬編碼密碼。 – mgfernan 2010-02-11 19:46:55