Supponiamo che io ho tre (o più) script bash: script1.sh
, script2.sh
, e script3.sh
. Vorrei chiamare tutti e tre questi script ed eseguirli in parallelo . Un modo per farlo è semplicemente eseguire i seguenti comandi:
nohup bash script1.sh &
nohup bash script2.sh &
nohup bash script3.sh &
(In generale, il completamento degli script potrebbe richiedere diverse ore o giorni, quindi vorrei usarlo in nohup
modo che continuino a funzionare anche se la mia console si chiude.)
Ma c'è un modo per eseguire quei tre comandi in parallelo con una singola chiamata?
Stavo pensando a qualcosa del genere
nohup bash script{1..3}.sh &
ma questo sembra eseguire script1.sh
, script2.sh
e script3.sh
in sequenza, non in parallelo.
nohup bash script{1..100}.sh &
o for i in {1..100}; do nohup bash script{1..100} &; done
), anziché digitare nohup bash script*.sh &
100 volte diverse.
screen
(o tmux
), al fine di risolvere il problema della console ma mantenere l'accesso all'output (e all'input).
nohup ... & nohup ... & nohup ... &
. Se intendi invece che vuoi eseguire tutti gli script senza digitare ogni nome di script singolarmente, un semplice ciclo lo farà.