2010-05-06 33 views
6

我有一個Ant腳本走在inputed密碼後運行一個標準-task:傳遞輸入到Ant的<exec>任務

<input message="Password:" addproperty="password"> 
<handler classname="org.apache.tools.ant.input.SecureInputHandler" /> 
</input> 

<exec executable="/bin/sh" input="${password}" failonerror="true"> 
    <arg line='-c "myScript.sh"' /> 
</exec> 

腳本myScript.sh提示用戶輸入密碼,並且,這是我的理解是從Ant文件是輸入應該繼電器輸入無論<exec>任務執行,而是我得到(用於輸入密碼foobar的)

[exec] Failed to open /usr/local/foobar 

隨後是一個堆疊T從我的腳本中抱怨一個不正確的密碼...顯然我已經理解了文檔錯誤。有誰知道如何處理來自Ant中外部腳本的提示輸入嗎?

回答

5
input="${password}" 

這將嘗試從文件$ {密碼}讀取並將內容發送到您的腳本。嘗試使用:

inputstring="${password}" 

改爲。這將發送字符串本身,而不是將其視爲文件名

+0

謝謝,似乎至少已經解決了主要問題! – mikek 2010-05-06 15:59:49

+0

讓我強調在元素中使用'-c'/ your/command''的重要性,並將元素的「可執行」屬性設置爲「/ bin/sh」。 – 2011-07-18 09:26:47