1 .for;do;done的使用对于批量处理非常方便
任务描述:需要使用多个不同位置的脚本,来处理一个路径下的数据集,在这个数据集中,还有若干不同的场景
脚本思想:为了简单方便,先赋值好各种路径,比如数据路径,脚本的路径,然后使用for语句来遍历数据集下的各个场景,然后使用脚本处理,直到for循环结束
bash">#!/bin/bash#数据集路径
base_dir="path/to/CO3D"#脚本所在项目路径
project1_dir="path/to/project1"
project2_dir="path/to/project2"#脚本在项目中的路径
script1="$project1_dir/script1"
script2="$project2_dir/script2"
script3="$project2_dir/script3"#其他文件路径,比如config、pth等等各种
config1="$project1_dir/config1"
config2="$project1_dir/config2"
pth="$project1_dir/pth"
png="$project1_dir/*.png"#执行脚本所可能需要的环境变量
INSTALL_PATH="$project_dir/g2o"
export LD_LIBRARY_PATH="$INSTALL_PATH/lib"#for语句,$dir就是具体的数据路径
for dir in $base_dir/*/; dosparse_frame="$dir/sparse_frame"output_dir="$dir/source"#搜索数据video1=$(find $dir -name "*_00_*.insv")video2=$(find $dir -name "*_10_*.insv")if [[ -n $video1 && -n $video2 ]]; thenecho "++++++++++++++++++++++++++++++++++++++++++++++++执行脚本1++++++++++++++++++++++++++++++++++++++++++++++++"$script1 参数1 $pth 参数2 $video1 参数3 $video2 参数4 $config1 参数5 $png --eval-log-dir . --resize 0.25echo "++++++++++++++++++++++++++++++++++++++++++++++++脚本2,下面是一个具体的示例++++++++++++++++++++++++++++++++++++++++++++++++"python $script2 --video1 $video1 --video2 $video2 --traj "$project_dir/keyframe_trajectory.txt" --downsample 1 --output $sparse_frameecho "++++++++++++++++++++++++++++++++++++++++++++++++脚本3++++++++++++++++++++++++++++++++++++++++++++++++"python $draw_mask $sparse_frameecho "++++++++++++++++++++++++++++++++++++++++++++++++脚本4++++++++++++++++++++++++++++++++++++++++++++++++"python $split_fisheye --input_dir $sparse_frame --output_dir $output_dirfi
done