GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguo più comandi in background in bash in una singola riga?

Devi aggiungere alcune parentesi nella tua ultima versione --

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

o anche questo funziona --

(sleep 2 &) ; (sleep 3 &)

Esattamente come vuoi che funzionino? Se vuoi che vengano avviati in background ed eseguito in sequenza , faresti qualcosa del genere:

{ sleep 2; sleep 3; } &

Se vuoi sleep 3 da eseguire solo se sleep 2 riesce, allora:

sleep 2 && sleep 3 &

Se, invece, desideri che funzionino in parallelo sullo sfondo , puoi invece eseguire questa operazione:

sleep 2 & sleep 3 &

E le due tecniche potrebbero essere combinate, come:

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

Bash essendo bash, c'è spesso una moltitudine di tecniche diverse per portare a termine lo stesso compito, anche se a volte con sottili differenze tra loro.


Linux
  1. Come inviare Stdout a più comandi?

  2. Come eseguire più comandi che hanno e in una riga di comando?

  3. Come eseguire il processo Rsync in background

  4. Come scrivere più stringhe di righe usando Bash con variabili?

  5. Esegui più comandi paralleli contemporaneamente nello stesso terminale

Come leggere un file riga per riga in Bash

Come eseguire i comandi Linux in background

Come eseguire più comandi Linux in un unico comando

Come eseguire uno script Bash

Come eseguire più comandi Linux contemporaneamente nel terminale Linux

Come posso modificare le righe precedenti in un comando a più righe in Bash?