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?


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

8

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.