Come posso eseguire un comando sullo sfondo senza e commerciale (&)? [chiuso]

2

Come posso eseguire un comando sullo sfondo in Bash senza e commerciale (& amp;) alla fine di un comando?

Aggiornamento: Voglio farlo in modo che possa fare while inotifywait -e modify app.py; do killall -9 python; python app.py &; done , ma ciò non è possibile a causa della sintassi.

    
posta wb9688 25.10.2015 - 16:34

2 risposte

3

Usa coproc python app.py

Da man bash

  

Coprocesses

     

Una coprocessa è un comando shell preceduto dalla parola riservata coproc. Una coprocessa viene eseguita in modo asincrono          in una sottotitola, come se il comando fosse stato terminato con & amp; operatore di controllo, con un tubo a due vie          tra la shell in esecuzione e la coprocess.

     

Il formato per una coprocess è:

     

comando coproc [NAME] [reindirizzamenti]

    
risposta data Sergiy Kolodyazhnyy 26.10.2015 - 09:30
2

La tua sintassi è leggermente disattivata:

while inotifywait -e modify app.py; do killall -9 python; python app.py &; done

Dovrebbe essere:

while inotifywait -e modify app.py; do killall -9 python; python app.py & done

A differenza dei linguaggi di tipo C, non puoi avere un'istruzione vuota prima di ; o & .

    
risposta data muru 26.10.2015 - 10:53

Leggi altre domande sui tag