我有一个Ant脚本在输入一个输入密码后运行一个标准的任务:
<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文档中 input 应该将中继输入转换为<exec>
任务执行的任何内容,但我得到(输入密码foobar)
[exec] Failed to open /usr/local/foobar
后面是我的脚本中的堆栈跟踪,抱怨密码错误...所以显然我已经理解了文档错误。有人知道如何处理Ant中外部脚本的提示输入吗?
答案 0 :(得分:5)
input="${password}"
这将尝试从文件$ {password}中读取并将内容发送到您的脚本中。尝试使用:
inputstring="${password}"
代替。这将发送字符串本身而不是像文件名一样处理它