2010-05-06 16 views
6

Tengo un script Ant ejecutando un -task estándar después de tomar en una contraseña ingresada,:entrada Pasando a la tarea de 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> 

El myScript.sh guión le pide al usuario una contraseña, y, que era mi la comprensión de que a partir de la documentación que Antde entrada se supone de entrada relé en cualquiera que sea la tarea <exec> está ejecutando, pero en lugar de eso obtener (para entrar en el foobar contraseña)

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

que es seguido por una pila t La carrera de mi script se queja de una contraseña incorrecta ... así que obviamente entendí mal la documentación. ¿Alguien sabe cómo manejar las entradas solicitadas de los scripts externos en Ant?

Respuesta

5
input="${password}" 

Esto intentará leer del archivo $ {contraseña} y enviar los contenidos a su secuencia de comandos. Intente utilizar:

inputstring="${password}" 

en su lugar. Esto enviará la cadena en sí en lugar de tratarlo como un nombre de archivo

+0

¡Gracias, parece que ha resuelto el problema principal al menos! – mikek

+0

Permítanme resaltar la importancia de usar '-c "/ su/comando"' en el elemento y establecer el atributo "ejecutable" del elemento en "/ bin/sh". –

Cuestiones relacionadas