Envoyer la tâche en arrière-plan dans un «si»


10

Pourquoi est-ce?

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

je veux courir

sleep 3

en arrière-plan pour que la commande ["sleep 3" n'est qu'un exemple] s'exécute dans le style "parallèle", de sorte qu'elle se termine plus rapidement. Mais je comprends ceci:

bash: syntax error near unexpected token `;'

Message d'erreur. Pourquoi? Pourquoi ne puis-je pas envoyer une tâche en arrière-plan?


Que pensez-vous que vous testez avec la ifdéclaration?
glenn jackman

Réponses:


6

Il semble que vous n'ayez pas besoin de séparer les commandes dans ce cas (les &séparer lui-même).

Par exemple.

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

8

C'est parce que &c'est déjà un séparateur d'instructions, vous ne devez donc pas le mettre ;après.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.