Vous pouvez utiliser la substitution de commande bash $(command)
comme ça :
$(command1 ; command2) &
Notez que stdin et stdout sont toujours liés au processus parent et que rediriger au moins le stdout peut être délicat. Une autre solution consiste à enchaîner les commandes sur une seule ligne, puis à passer la chaîne de caractères à la commande bash
pour créer un nouveau processus qui se chargera de l'exécution.
bash -c "command1 ; command2" &
Ceci est particulièrement utile dans un script bash lorsque vous devez exécuter plusieurs commandes en arrière-plan.
Ces deux déclarations devraient être équivalentes. A bash est créé dans les deux cas pour traiter la commande (chaîne de commande) et la &
à la fin détache l'exécution.
Cette fois, vous pouvez ajouter &>/dev/null
avant le &
à la fin de la commande pour rediriger au moins le stdout et éviter la sortie sur le stdout du processus parent. Quelque chose comme :
bash -c "command1 ; command2" &>/dev/null &