Linux サーバー (Ubuntu 12.04 LTS) には、expA、expB、および expC の 3 つのスクリプトがあります。次に、nctu_0、nctu_1 ..... nctu_31 という名前の 32 個の入力ファイルを取得しました。そのうちの 6 つは他のファイルよりもはるかに大きいため、expA 用に 3 つの入力ファイル、expB 用に 3 つ、expC 用にもう 1 つの入力ファイルを使用します。
つまり、expA: nctu_6 nctu_13 nctu_17 を実行し、expB: nctu_20 nctu_24 nctu_31 を実行し、expC: 他のファイルを実行します。
これは expB の元のスクリプトであり、expA のスクリプトは expB とほぼ同じです。
#!/bin/bash
PROGRAM=./Simulator
FILE_PART_PREFIX1=/home//data/pcap_partial/h1200/nctu_
RESULT_PREFIX1=/home/data/setup_exp/h1200
RECEIVER_SIZE=4096
SENDER_SIZE=4096
BETA=0.25
UPDATE=400
MARKER=20
part=20
if [ ${part} -eq 20 ];then
nohup ${PROGRAM} 1 ${FILE_PART_PREFIX1}${part}.pcap ${RECEIVER_SIZE} ${SENDER_SIZE} ${BETA} ${UPDATE} ${MARKER} ${MODE} >> ${RESULT_PREFIX1}/res_${part} 2>&1 &
fi
part=24
if [ ${part} -eq 24 ];then
nohup ${PROGRAM} 1 ${FILE_PART_PREFIX1}${part}.pcap ${RECEIVER_SIZE} ${SENDER_SIZE} ${BETA} ${UPDATE} ${MARKER} ${MODE} >> ${RESULT_PREFIX1}/res_${part} 2>&1 &
fi
part=31
if [ ${part} -eq 31 ];then
nohup ${PROGRAM} 1 ${FILE_PART_PREFIX1}${part}.pcap ${RECEIVER_SIZE} ${SENDER_SIZE} ${BETA} ${UPDATE} ${MARKER} ${MODE} >> ${RESULT_PREFIX1}/res_${part} 2>&1 &
fi
最初に nctu_20 を実行し、nctu_24 が完了したら nctu_24 を実行します。nctu_24 が完了したら、最後に nctu_31 を実行します。
これがexpCの元のスクリプトです
#!/bin/bash
PROGRAM=./Simulator
FILE_PART_PREFIX1=/home/data/pcap_partial/h1200/nctu_
RESULT_PREFIX1=/home/data/setup_exp/h1200
RECEIVER_SIZE=4096
SENDER_SIZE=4096
BETA=0.25
UPDATE=400
MARKER=20
for (( part=0;part<32;part=part+1 ))
do
if [ ${part} -eq 6 ] || [ ${part} -eq 13 ] || [ ${part} -eq 17 ] || [ ${part} -eq 20 ] ||[ ${part} -eq 24 ] || [ ${part} -eq 31 ];then
continue
else
nohup ${PROGRAM} 1 ${FILE_PART_PREFIX1}${part}.pcap ${RECEIVER_SIZE} ${SENDER_SIZE} ${BETA} ${UPDATE} ${MARKER} ${MODE} >> ${RESULT_PREFIX1}/res_${part} 2>&1 &
fi
done
簡単に言えば、expA、expB expC を同時に実行し、それぞれがバックグラウンドでシーケンシャル入力ファイルを使用してシミュレーター プログラムを起動したいと考えています。誰かが私を助けることができますか?