Comment peut-on exécuter plusieurs programmes en arrière-plan avec une seule command?

Comment peut-on exécuter plusieurs programmes en arrière-plan avec une seule command?

J'ai essayé les commands ci-dessous, mais elles ne fonctionnent pas.

nohup ./script1.sh & && nohup ./script2.sh & -bash: syntax error near unexpected token '&&' nohup ./script1.sh & ; nohup ./script2.sh & -bash: syntax error near unexpected token ';' 

Du sharepoint vue de la syntaxe du shell, & sépare les commands comme ; / | / && … (bien sûr avec des sémantiques différentes). Donc c'est juste:

 cmd1 & cmd2 & cmd3 & 

La section de bash manpage intitulée Compound Commands a deux options qui fonctionneraient, listraient et grouperaient des commands.

Une command de groupe est une série de commands entourées d'accolades {} . Une list est la même, entre parenthèses () . Les deux peuvent être utilisés pour mettre en arrière plusieurs commands à l'intérieur, et enfin pour mettre en arrière toute la collection en tant qu'set. La construction de list exécute des commands dans un sous-shell, de sorte que les affectations variables ne sont pas conservées.

Pour exécuter un groupe de commands:

 { command1 & command2 & } & 

Vous pouvez également exécuter vos commands dans une list (sous-shell):

 ( command1 & command2 ) & 

autrement:

 $(command1 &) && command2 &