Enviar tarea al fondo en un "si"


10

¿Por qué es esto?

if true; then sleep 3 &; fi
bash: syntax error near unexpected token `;'

quiero correr

sleep 3

en segundo plano para que el comando ["dormir 3" sea solo un ejemplo] se ejecute en estilo "paralelo", por lo que termina más rápido. Pero estoy entendiendo esto:

bash: syntax error near unexpected token `;'

mensaje de error. ¿Por qué? ¿Por qué no puedo enviar una tarea a un segundo plano?


¿Qué crees que estás probando con la ifdeclaración?
Glenn Jackman

Respuestas:


6

Parece que no necesita separar comandos en ese caso (los &separó a sí mismo).

Por ejemplo.

$> if true; then (sleep 3; echo ok) &  fi
[1] 14224
$> ok

8

Es porque &ya es un separador de sentencias, por lo que no debe colocar ;después de esto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.