バックグラウンドプロセスが完了した後に別のプロセスを実行する

バックグラウンドプロセスが完了した後に別のプロセスを実行する

test.shファイルに繰り返しスクリプトがあり、バックグラウンドプロセスが完了した後に「running_script2.sh」スクリプトを実行しようとしましたが、これを試しましたが機能しません。

for id in 1 2 3
do
bash running_script1.sh $id &   (#complete 1 minute/looping)
done
wait
echo "running script2 ..."
bash running_script2.sh

労働時間:

bash running_script1.sh 1 &
bash running_script1.sh 2 &
bash running_script1.sh 3 &
wait
echo "running script2 ..."
bash running_script2.sh

しかし効率的ではありません

ベストアンサー1

間に意味の違いはありません。

for id in 1 2 3
do
bash running_script1.sh $id &   (#complete 1 minute/looping)
done

そして

bash running_script1.sh 1 &
bash running_script1.sh 2 &
bash running_script1.sh 3 &
wait
echo "running script2 ..."
bash running_script2.sh

time以下のデモスクリプトは、条件付きコマンドに関係なく3秒間実行できます(可能true)。false

#!/bin/sh -eu
for i in 1 2 3; do
    echo "sleep $i" > $i && chmod +x $i
done
if false; then
    for i in 1 2 3; do
        bash ./$i &
    done
else
    bash ./1 &
    bash ./2 &
    bash ./3 &
fi
wait

それでも違いがある場合は投稿してください。マクウェイ

おすすめ記事