2012-12-20 19 views
8

voglio fare questo attraverso uno script Ant:eseguire più comandi attraverso exec Ant

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

Questo è quello che ho provato, ma penso che esegue solo il comando cd:

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

I su Mac OS X.

risposta

14

Solo il primo argomento dopo lo -c viene eseguito dalla shell, quindi il comportamento che si vede. Basta mettere i due comandi in un'arg, separati da una virgola:

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

che funzionava perfettamente. Grazie mille! – Ohas

+0

Questo è strano, il che significa che non possiamo usare gli argomenti per Mac? Dobbiamo dare tutto il comando nella stessa riga accanto a -c arg? –

+0

Avrei suggerito invece di eseguire ogni comando nel proprio tag exec. Incatenarli in quel modo offusca gli errori. Se uno di loro fallisce, potresti non ottenere l'errore necessario con cui identificare il colpevole. –

Problemi correlati