Od http://ant.apache.org/manual/Tasks/exec.html:Jak wykonać interaktywną aplikację ze skryptu Ant build?
Należy pamiętać, że nie można wchodzić w interakcje z rozwidlony programu , jedynym sposobem, aby wysłać wejście do niej jest przez wejście i inputstring atrybutów. Zauważ też, że od Ant 1.6 próba odczytania wejścia w rozwidlonym programie spowoduje, że otrzyma EOF (-1). To jest zmiana z Ant 1.5, gdzie taka próba zablokowałaby .
Jak uruchomić interaktywną konsolę z programu?
Co chcę zrobić jest podobna do funkcji drush sqlc, która uruchamia interpreter klienta mysql przy użyciu odpowiednich poświadczeń bazy danych, ale nie ogranicza się do tego przypadku użycia.
Oto przypadek użycia próbki:
<project name="mysql">
<target name="mysql">
<exec executable="mysql">
<arg line="-uroot -p"/>
</exec>
</target>
</project>
Kiedy prowadzony przy użyciu ant:
$ ant -f mysql.xml mysql
Buildfile: /home/ceefour/tmp/mysql.xml
mysql:
Enter password:
BUILD SUCCESSFUL
Total time: 2 seconds
Po wprowadzeniu hasła, to natychmiast kończy działanie.
Porównaj to z tym, co dzieje się podczas wykonywania bezpośrednio na powłoce (oczekiwanego zachowania):
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1122
Server version: 5.1.58-1ubuntu1 (Ubuntu)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Nie działa w moim przypadku użycia (patrz poprawione pytanie). Czy możesz przetestować mój skrypt Ant w swoim systemie i dać mi znać, czy to działa? –