私はいくつかのpythonプログラムを実行するシェルスクリプトを実行しています。シェルスクリプトは次のようなものです:Pythonを実行している間にシェルスクリプトをブロックする方法は?
(python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.3 --uttWindowSize 10 --learningRate 0.0001 &
python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.3 --uttWindowSize 10 --learningRate 0.0003 &
python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.3 --uttWindowSize 10 --learningRate 0.0009 &);
(python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.6 --uttWindowSize 10 --learningRate 0.0001 &
python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.6 --uttWindowSize 10 --learningRate 0.0003 &
python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.6 --uttWindowSize 10 --learningRate 0.0009 &);
(python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.9 --uttWindowSize 10 --learningRate 0.0001 &
python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.9 --uttWindowSize 10 --learningRate 0.0003 &
python3 main.py --device /gpu:1 --wordCNNSize 100 --uttCNNSize 100 --dropOut 0.9 --uttWindowSize 10 --learningRate 0.0009 &);
私が期待するのは、最初の3つのcmd行が実行され、最初の3つが終了した後です。 3つの第2のグループが始まる。しかし、今では9つのプログラムがすべて同時に開始されています。
私はCプログラムを実行する場合は、シェルスクリプトのこの種のは、このように、うまく機能:
(./myprogram 0.1 0.1 0.1 &
./myprogram 0.1 0.1 0.1 &
./myprogram 0.1 0.1 0.1 &);
(./myprogram 0.1 0.1 0.1 &
./myprogram 0.1 0.1 0.1 &
./myprogram 0.1 0.1 0.1 &);
(./myprogram 0.1 0.1 0.1 &
./myprogram 0.1 0.1 0.1 &
./myprogram 0.1 0.1 0.1 &);
9本のCMDラインは三つのグループに実行されます。第2のグループは、第1のグループが終了するまで待機する。
なぜこの質問に 'Python'タグを追加しましたか?この質問はどのようにPythonに関係していますか? –
私はC \ C++を書いたので、このシェルスクリプトは期待どおりに機能します。 – Zhao
さて、C/C++スクリプトではうまくいかなかったと思います。 [@ codeforesterの回答](http://stackoverflow.com/a/41690840/2063361)をチェックしてください。スクリプトの言語に依存しません –