2011-04-13 119 views
1

我有一個執行另一個程序的bash腳本。該程序提示用戶輸入附加信息。問題是,我該如何自動執行bash腳本中的輸入?從shell(bash)腳本執行命令時,在用戶提示中插入文本?

例如,從我的腳本s3cmd命令提示我:

Enter new values or accept defaults in brackets with Enter. 
Refer to user manual for detailed description of all options. 

Access key and Secret key are your identifiers for Amazon S3 
Access Key: _ 

在我的shell腳本,我將如何插入用於訪問鍵的提示字符串,然後模擬「ENTER」鍵?

編輯:爲清楚起見

回答

4

您通常使用expect命令,或者其workalikes之一。代碼現在可以從SourceForge獲得,看起來好像。

+0

謝謝,我使用expect了。非常酷的工具! – Calvin 2011-04-14 19:14:19

0

在bash,你可以簡單地做:

#!/bin/bash 

echo -n "Access Key: " 
read key 

echo "you entered $key" 

默認讀取命令讀取1行數據(按直到回車鍵抓住輸入)。看到這裏:http://wiki.bash-hackers.org/commands/builtin/read更多選項使用在bash中讀取。

+1

如果我從我自己的腳本獲取用戶輸入,但這個問題適用於由我的腳本調用的另一個程序提示的用戶輸入。 – Calvin 2011-04-14 19:13:50