He encontrado un problema de dolor de cabeza.
Quiero ejecutar varios comandos en segundo plano, así que quiero iniciarlos en bash uno por uno.
Es fácil iniciar un comando en el shell de Linux en segundo plano, así:
myCommand &
También es fácil iniciar múltiples comandos, así:
myCommand1 && myCommand2
o
myCommand1 ; myCommand2
Pero si quiero ejecutar varios comandos en segundo plano, probé el siguiente formato de comando, pero fallé:
myCommand1 & && myCommand2 &
o
myCommand1 & ; myCommand2 &
Ambos formatos fallan. ¿Cómo puedo ejecutar varios comandos que tienen &
en una línea de comando?
Respuesta aceptada:
Utilice ().
Si desea ejecutarlos secuencialmente:
(myCommand1; myCommand2) &
o
(myCommand1 &) && (myCommand2 &)
Si desea que se ejecuten en paralelo:
myCommand1 & myCommand2 &
En bash también puedes usar esto (el espacio detrás de { y; son obligatorios):
{ myCommand1 && myCommand2; } &