shell中同时实现for循环遍历多个数组的多线程

1、实现多线程

for ((i=0; i<=8; i++))
do
{
    XXXXXX
}&
done

Note:主要就是对for循环中要执行的命令,用{}&包含起来,注意是大括号+&,不要少了&(没打错)。

参考如下:

shell中如何实现多线程_丷刘大胆儿的博客-CSDN博客_shell 多线程

2、实现多变量循环

list0=${data_dir}list/test_split/test0_normal.txt
list1=${data_dir}list/test_split/test1_crowd.txt
list2=${data_dir}list/test_split/test2_hlight.txt
list3=${data_dir}list/test_split/test3_shadow.txt
list4=${data_dir}list/test_split/test4_noline.txt
list5=${data_dir}list/test_split/test5_arrow.txt
list6=${data_dir}list/test_split/test6_curve.txt
list7=${data_dir}list/test_split/test7_cross.txt
list8=${data_dir}list/test_split/test8_night.txt
list=($list0 $list1 $list2 $list3 $list4 $list5 $list6 $list7 $list8)

out0=./output/out0_normal.txt
out1=./output/out1_crowd.txt
out2=./output/out2_hlight.txt
out3=./output/out3_shadow.txt
out4=./output/out4_noline.txt
out5=./output/out5_arrow.txt
out6=./output/out6_curve.txt
out7=./output/out7_cross.txt
out8=./output/out8_night.txt
out=($out0 $out1 $out2 $out3 $out4 $out5 $out6 $out7 $out8)

for((i=0; i<=8; i++))
do
{
  ./evaluate -a $data_dir -d $detect_dir -i $data_dir -l ${list[i]} -w $w_lane -t $iou -c $im_w -r $im_h -f $frame -o ${out[i]}
}&
done

wait

cat ./output/out*.txt>./output/${exp}_iou${iou}_split.txt

Note:

1)把多个变量放到一个数组中,注意使用$

2)注意命令中的对数组成员的正确引用${list[i]}

参考如下:

linux shell遍历多个数组_HackerTom的博客-CSDN博客_shell 多个数组

3、Linux 中使用的GPU的指定

这个在python中经常用到,例如CUDA_VISIBLE_DEVICES=1 python run_file.py。

但这里说的CUDA_VISIBLE_DEVICES=1,该命令不仅适用于执行python文件的情况,而且是适用于linux所有执行文件的情况下,例如执行shell脚本,CUDA_VISIBLE_DEVICES=2 ./autotest_culane.sh enet_baseline_culane test ./output。(该shell脚本中调用cmd来执行含有opencv代码的可执行程序)

因此,这里说是Linux中使用GPU的指定。

Over!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值