2010-08-20 17 views
12

Ho creato diversi alias bash in Git Bash su Windows per avviare gli eseguibili dalla shell bash.Git Bash: Avvia applicazione tramite Alias ​​senza bloccare Bash (Windows)

Il problema che sto avendo è che sembra che bash sia in attesa di un codice di uscita prima che inizi a rispondere di nuovo all'input, poiché una volta chiusa l'app avviata, riprende a ricevere i comandi.

C'è un interruttore o qualcosa che posso includere nell'alias in modo che bash non aspetti il ​​codice di uscita?

Sto cercando qualcosa di simile ...

alias np=notepad.exe --exit 
+1

hai provato a eseguirlo con un &? così invece di fare il blocco note >.exe > notepad.exe e – George

risposta

7

confermo quanto George menzioni nei commenti:

Lanciando l'alias con '&' ti permette di andare avanti senza attesa per il codice di ritorno.

alt text

Con:

alias npp='notepad.exe&' 

non sarà nemmeno bisogno di digitare il '&'.


Ma per compresi i parametri, consiglio uno script (al posto di un alias) posizionato ovunque all'interno del tuo percorso , in un file chiamato "npp":

/c/WINDOWS/system32/notepad.exe $1 & 

permetterebbe è necessario aprire qualsiasi file con "npp anyFile" (non è necessario "&") senza attendere il codice di ritorno.

uno script come:

for file in $* 
do 
    /c/WINDOWS/system32/notepad.exe $file & 
done 

avrebbe lanciato diversi redattori, uno per ogni file in parametri:

npp anyFile1 anyFile2 anyFile3 

permetterebbe

+0

Sì, ho capito, ma cosa succede se voglio eseguire il blocco note aprire un file e non aspettare un codice di ritorno? – ctorx

+0

@ Matthew: capito. Vedi la mia risposta aggiornata. – VonC

4

Seguire il comando con una e commerciale (&) per l'esecuzione in background.

+0

È possibile includere il & nello pseudonimo? Per esempio, voglio farlo .... alias np = 'notepad.exe $ * &', dove $ * è i parametri specificati quando viene usato l'alias ... (il nome del file da aprire). – ctorx

+0

Se si modifica direttamente il file git config ('.git/config') (nella sezione' alias'), è possibile aggiungere il '&' lì. (Non è possibile aggiungerlo dalla riga di comando perché verrà interpretato come parte del comando per impostare l'alias, non parte dell'alias stesso.) – Amber

2

ho unito la soluzione di VonC e questo https://stackoverflow.com/a/7131683/1020871 a ottenere un alias che avvia un eseguibile e passa i parametri senza bloccare git bash. Aggiungere il seguente alla .bashrc:

npp() { 
    notepad++.exe $* & 
} 

startGitk() { 
    gitk $* & 
} 
alias gitk=startGitk 

Ora possono aprire più file Notepad ++ come npp .gitignore build.gradle o gitk con argomenti personalizzati come gitk test -- .gitignore.

Avevo un alias simile per npp come per gitk ma ho scoperto che potevo chiamare direttamente la funzione. Posso anche chiamare startGitk ma non ha funzionato quando l'ho chiamato gitk.