Des parenthèses bien placées et un & derrière devraient suffire.
Sans parenthèses :
#!/bin/bash
for i in a b c
do
echo "$i"
sleep 10
echo " -- $i"
done
A l'exécution :
$ time sh /tmp/toto.sh
a
-- a
b
-- b
c
-- c
real 0m30.025s
user 0m0.000s
sys 0m0.004s
Avec les parenthèses :
le code :
#!/bin/bash
for i in a b c
do
( echo "$i"
sleep 10
echo " -- $i" ) &
done
a l'exécution :
$ time sh /tmp/toto.sh
a
b
c
real 0m0.009s
user 0m0.004s
sys 0m0.000s
$ -- a
-- b
-- c
Explication : les parenthèses exécutent les commandes qu'elles contiennent dans un sous-shell. Ce qui signifie que, dans le code, il faudrait mettre entre parenthèses tout le bloc de code qui doit s'exécuter dans un ordre précis et mettre un & derrière pour que les blocs entre parenthèses s'exécutent en paralèle les uns des autres.
[^] # Re: &
Posté par totof2000 . En réponse au message action simultanée. Évalué à 3.
Des parenthèses bien placées et un & derrière devraient suffire.
Sans parenthèses :
A l'exécution :
Avec les parenthèses :
le code :
a l'exécution :
Explication : les parenthèses exécutent les commandes qu'elles contiennent dans un sous-shell. Ce qui signifie que, dans le code, il faudrait mettre entre parenthèses tout le bloc de code qui doit s'exécuter dans un ordre précis et mettre un & derrière pour que les blocs entre parenthèses s'exécutent en paralèle les uns des autres.