2013-04-12 11 views
11

Ho scritto un semplice CURL e l'ho inserito in un file di script.Come posso avviare Mintty ed eseguire un file di script?

se eseguo mintty prima e poi "test.sh" esegue lo script nel file bene. Funziona perfettamente.

tuttavia, se provo a eseguire mintty con una qualsiasi delle seguenti righe di comando, non verrà eseguito. Sono in esecuzione in questi CMD

C:\>c:\cygwin\bin\mintty.exe --exec '/cygdrive/c/cygwin/bin/test.sh' 

C:\>c:\cygwin\bin\mintty.exe --exec '/bin/test.sh' 

C:\>c:\cygwin\bin\mintty.exe --exec '/test.sh' 

C:\>c:\cygwin\bin\mintty.exe --exec 'test.sh' 

C:\>c:\cygwin\bin\mintty.exe --exec 'c:/test.sh' 

C:\>c:\cygwin\bin\mintty.exe --exec 'c:\test.sh' 
+0

C: \ cygwin \ bin \ mintty.exe/b in/bash -l la riga sopra funziona bene, ma con "-e '/cygdrive/c/cygwin/bin/test.sh'" la finestra di controllo si apre per 1 secondo, quindi si chiude. – layornos

risposta

7

Per chi è interessato a questo ... ecco la soluzione

Creare un collegamento in Windows per mintty con il seguente obiettivo

Assumendo che il file di shell si trova in C: \ cygwin \ bin

C:\cygwin\bin\mintty.exe /bin/bash -l -e '/cygdrive/c/cygwin/bin/test.sh' 
+0

Ho trovato il mio 'mintty.exe' e' bash.exe' in 'C: \ cygwin64 \ bin \' – hobs

3

provare a eseguire direttamente bash.exe (o qualche altro guscio che ha installato con cygwin).

Da una shell di Windows, cambiare la directory ai tuoi cygwin installare ed eseguire questo:

C:\cygwin\bin>bash.exe /cygdrive/c/cygwin/bin/test.sh 

Per ottenere lo script di shell per eseguire facendo doppio clic su un collegamento

1) Mettere il comando in una. bat file

test.bat 
--------------------------------------------------------------------- 
c:\cygwin\bin\bash.exe /cygdrive/c/cygwin/bin/test.sh 

--------------------------------------------------------------------- 

2) Creare un collegamento utilizzando test.bat come destinazione.

Ho provato a creare un collegamento con bash.exe e il comando come destinazione. Che errori fuori per qualche motivo. Tuttavia, il wrapping del comando in un file .bat funziona. Vai a capire.

0

Io uso anche la soluzione offerta da nkman, ma aggiungo l'opzione '-h sempre' in modo che la console rimanga aperta finché non premo invio, per vedere cosa è successo. Quindi questo è l'obiettivo della mia scorciatoia:

C:\cygwin\bin\mintty.exe -h always /bin/bash -l -e '/cygdrive/c/cygwin/home/Administrator/startup.sh' 
0

migliore soluzione, a mio parere:

invoca la shell di destra, senza finestre inutili e invoca uno script bash dopo che sarà attesa.

  • creare un collegamento-mintty.exe sul desktop, ad esempio

  • Modificare le proprietà del collegamento e modificare la destinazione (tenere il percorso):

  • C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'

Problemi correlati