Ubuntu22中的bash脚本记录

1 .for;do;done的使用对于批量处理非常方便

任务描述:需要使用多个不同位置的脚本,来处理一个路径下的数据集,在这个数据集中,还有若干不同的场景

脚本思想:为了简单方便,先赋值好各种路径,比如数据路径,脚本的路径,然后使用for语句来遍历数据集下的各个场景,然后使用脚本处理,直到for循环结束

#!/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/*/; do

    sparse_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 ]]; then
        echo "++++++++++++++++++++++++++++++++++++++++++++++++执行脚本1++++++++++++++++++++++++++++++++++++++++++++++++"
        $script1 参数1 $pth 参数2 $video1 参数3 $video2 参数4 $config1 参数5 $png --eval-log-dir . --resize 0.25
        echo "++++++++++++++++++++++++++++++++++++++++++++++++脚本2,下面是一个具体的示例++++++++++++++++++++++++++++++++++++++++++++++++"
        python $script2 --video1 $video1 --video2 $video2 --traj "$project_dir/keyframe_trajectory.txt" --downsample 1 --output $sparse_frame
        echo "++++++++++++++++++++++++++++++++++++++++++++++++脚本3++++++++++++++++++++++++++++++++++++++++++++++++"
        python $draw_mask $sparse_frame
        echo "++++++++++++++++++++++++++++++++++++++++++++++++脚本4++++++++++++++++++++++++++++++++++++++++++++++++"
        python $split_fisheye --input_dir $sparse_frame --output_dir $output_dir

    fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值