Ho riscontrato un problema di mal di testa.
Voglio eseguire più comandi in background, quindi voglio avviarli in bash uno per uno.
È facile avviare un comando nella shell di Linux in background, proprio come questo:
myCommand &
È anche facile avviare più comandi, proprio come questo:
myCommand1 && myCommand2
o
myCommand1 ; myCommand2
Ma se voglio eseguire più comandi in background, ho provato il seguente formato di comando, ma non ci sono riuscito:
myCommand1 & && myCommand2 &
o
myCommand1 & ; myCommand2 &
Entrambi i formati falliscono. Come posso eseguire più comandi che hanno &
in una riga di comando?
Risposta accettata:
Usa ().
Se vuoi eseguirli in sequenza:
(myCommand1; myCommand2) &
o
(myCommand1 &) && (myCommand2 &)
Se vuoi che funzionino in parallelo:
myCommand1 & myCommand2 &
In bash puoi anche usare questo (spazio dietro a { e; sono obbligatori):
{ myCommand1 && myCommand2; } &