2012-12-20 16 views
8

chcę zrobić to za pośrednictwem Ant skryptu produkcji:uruchomić wiele poleceń poprzez Ant Exec

$ /bin/sh 
$ cd /path/to/executable 
$ ./executable.sh 

To co próbowałem, ale myślę, że tylko wykonuje polecenia cd:

<exec executable="/bin/sh" os="Mac OS X"> 
    <arg value="-c"/> 
    <arg value="cd /path/to/executable"/> 
    <arg value="./executable.sh"/> 
</exec> 

I na Mac OS X.

Odpowiedz

14

Tylko pierwszy argument po -c jest uruchamiany przez powłokę, stąd zachowanie, które widzisz. Wystarczy umieścić dwie komendy w jednym arg, oddzielone średnikiem:

<exec executable="/bin/sh" os="Mac OS X"> 
    <arg value="-c"/> 
    <arg value="cd /path/to/executable; ./executable.sh"/> 
</exec> 
+1

To zadziałało idealnie. Dziękuję Ci bardzo! – Ohas

+0

To jest dziwne, co oznacza, że ​​nie możemy użyć argumentów dla Maca? Czy musimy podać wszystkie polecenia w tym samym wierszu obok argumentów -c? –

+0

Zaleciłbym zamiast tego uruchomić każde polecenie we własnym tagu exec. Takie łańcuchy zaciemniają błędy. Jeśli jedno z nich się nie powiedzie, możesz nie uzyskać koniecznego błędu, który pozwoli zidentyfikować winowajcę. –

Powiązane problemy