Le &
indique au shell d'exécuter la commande en arrière-plan, c'est-à-dire qu'elle est forkée et exécutée dans un sous-shell séparé, en tant que tâche, de manière asynchrone.
Remarquez que lorsque vous mettez &
, la sortie - à la fois stdout et stderr - sera toujours affichée à l'écran. Si vous ne voulez pas voir de sortie sur l'écran, redirigez à la fois stdout
et stderr
vers un fichier en faisant :
monscript > ~/monscript.log 2>&1 &
En général, vous pouvez vouloir ignorer le stderr
en le redirigeant vers /dev/null
si vous ne vous souciez pas d'analyser les erreurs plus tard.
Vous pouvez également exécuter des commandes/scripts en même temps, dans des sous-shells séparés. Par exemple ;
./script1 & ./script2 & ./script3 &
Une tâche en arrière-plan peut être ramenée à l'invite de commande avant son achèvement avec la commande :
fg
Le numero-de-tache
peut être obtenu en exécutant
jobs