Bashで並列処理を実行するには?
私のbashスクリプトでは、私のアプローチは多くのバックグラウンドタスクを追加し、配列を使用して&
各プロセスIDを追加し、ループを使用してその配列を取得し、その中でwaitコマンドを使用することです。しかし、とにかくwait
命令は在職中ではありません。
私のコードは次のとおりです
for i in some path
do
ls -d $i | xargs du -kh --max-depth=0 |sed 's/\t/,/g' >> $TEMP/Outfile/disk_usage_Session_wise.csv &
pid=$!
ls -d $i/session | xargs du -kh --max-depth=1 | sed 's/\t/,/g' >> $TEMP/Outfile/disk_usage_Session_wise.csv &
pid_1=$!
process_list=($pid $pid_1)
done
for job in echo ${process_list[@]}
do
echo "$job is running"
wait $job # this command is not working
done –
ベストアンサー1
他のソフトウェアを使用できますか?それともbashしかできませんか?GNU Parallel
これが作業を完了するために必要なようです。または少なくとも議論が-n
あります-P
xargs