2010-05-06 11 views
6

Ich habe einen Ant-Skript einen Standard -task nach der Einnahme in einem inputed Passwort läuft Passing-Eingang:zu Ant <exec> Aufgabe

<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> 

Das Skript myScript.sh fordert den Benutzer auf, ein Kennwort, und es war mein Verständnis, dass aus der Ant-Dokumentation, dass Eingang Relaiseingang in dem, was sollte die <exec> Aufgabe ausgeführt wird, sondern ich (das Passwort foobar für die Eingabe)

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

, die von einem Stapel t folgen Rennen von meinem Skript beschweren sich über ein falsches Passwort ... so offensichtlich habe ich die Dokumentation falsch verstanden. Weiß jemand, wie man Eingaben von externen Skripten in Ant bearbeitet?

Antwort

5
input="${password}" 

Dies wird versuchen, aus der Datei $ {password} zu lesen und den Inhalt in Ihr Skript zu senden. Versuchen Sie mit:

inputstring="${password}" 

statt. Dies wird die Zeichenfolge selbst senden, anstatt es wie ein Dateiname zu behandeln

+0

Danke, scheint das primäre Problem zumindest gelöst zu haben! – mikek

+0

Lassen Sie mich hervorheben, wie wichtig es ist, '-c'/your/command '' im Element zu verwenden und das Attribut "executable" des Elements auf "/ bin/sh" zu setzen. –

Verwandte Themen