GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter plusieurs commandes d'arrière-plan dans bash sur une seule ligne ?

Vous devez ajouter des parenthèses dans votre dernière version --

(sleep 2 &) && (sleep 3 &)

ou cela fonctionne aussi --

(sleep 2 &) ; (sleep 3 &)

Comment voulez-vous qu'ils fonctionnent exactement ? Si vous voulez qu'ils soient lancés en arrière-plan et exécuter séquentiellement , vous feriez quelque chose comme ceci :

{ sleep 2; sleep 3; } &

Si vous voulez sleep 3 à exécuter uniquement si sleep 2 réussit, alors :

sleep 2 && sleep 3 &

Si, en revanche, vous souhaitez qu'ils s'exécutent en parallèle en arrière-plan , vous pouvez à la place faire ceci :

sleep 2 & sleep 3 &

Et les deux techniques pourraient être combinées, telles que :

{ sleep 2; echo first finished; } & { sleep 3; echo second finished; } &

Bash étant bash, il existe souvent une multitude de techniques différentes pour accomplir la même tâche, bien que parfois avec des différences subtiles entre elles.


Linux
  1. Comment exécuter une commande unique sur plusieurs systèmes distants à la fois

  2. Comment envoyer Stdout à plusieurs commandes ?

  3. Comment exécuter plusieurs commandes qui ont &dans une seule ligne de commande ?

  4. Comment exécuter un script en arrière-plan (linux openwrt) ?

  5. Comment expirer un groupe de commandes dans Bash

Comment lire un fichier ligne par ligne dans Bash

Comment exécuter des commandes Linux en arrière-plan

Comment exécuter plusieurs commandes Linux en une seule commande

Comment exécuter un script bash

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Comment modifier les lignes précédentes dans une commande à plusieurs lignes dans Bash ?