Envie a tarefa para segundo plano em um "se"

10

Por que é isso?

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

Eu quero correr

sleep 3

em segundo plano, para que o comando ["sleep 3" seja apenas um exemplo] seja executado no estilo "paralell", para que termine mais rapidamente. Mas eu estou entendendo isso:

bash: syntax error near unexpected token `;'

mensagem de erro. Por quê? Por que não consigo enviar uma tarefa para segundo plano?

LanceBaynes
fonte
O que você acha que está testando com a ifdeclaração?
Glenn Jackman

Respostas:

6

Parece que você não precisa separar comandos nesse caso (os &separou).

Por exemplo.

$> if true; then (sleep 3; echo ok) &  fi
[1] 14224
$> ok
ДМИТРИЙ МАЛИКОВ
fonte
8

É porque &já é um separador de instruções, então você não deve colocar ;depois disso.

enzotib
fonte