shell脚本:将指定目录下的执行文件的结果写入指定文件中

Linux 专栏收录该内容
7 篇文章 0 订阅

shell脚本:将指定目录下的执行文件的结果写入指定文件中

这个脚本使我写的第一个真正有用的脚本,折腾了半天。主要可以实现的功能就是:1、得到一个路径下的所有文件夹名。2、在得到子路径下的文件夹名。3、得到该路径下的所有文件名。4、在制定位置创建文件。5、将指定路径下的二进制文件执行的结果写入指定路径下的文件中。

#!/bin/bash
dir=$(ls -l /home/lion/yuedata/RGB |awk '/^d/ {print $NF}')
for i in $dir
do
    path1='/home/lion/yuedata/RGB/'"${i}"
    echo $path1

    mdir1='/home/lion/yuedata/outRGB/'"${i}"
    echo $mdir1    
    mkdir $mdir1

    dir1=$(ls -l $path1  |awk '/^d/ {print $NF}')

    for j in $dir1
    do
        mdir2='/home/lion/yuedata/outRGB/'"${i}/""${j}"
        echo $mdir2
        mkdir $mdir2

        path2="${path1}/""${j}"
        echo $path2
        cd $path2

        for filename in `ls`
        do 
            echo $filename
            createfile="touch /home/lion/yuedata/outRGB/${i}/${filename}.txt"
            $createfile

            cmd="eval /home/lion/yuelib/dense_trajectory_release_v1.2/release/DenseTrack ${path1}/${filename} -L 30 >> /home/lion/yuedata/outRGB/${i}/${filename}.txt"
            $cmd
        done
    done
done

连接:shell eval命令使用 http://blog.csdn.net/w_ww_w/article/details/7075867

带有计时功能的版本:

#!/bin/bash
dir=$(ls -l /home/lion/yuedata/RGB |awk '/^d/ {print $NF}')
for i in $dir
do
    path1='/home/lion/yuedata/RGB/'"${i}"
    echo $path1

    mdir1='/home/lion/yuedata/outRGB/'"${i}"
    echo $mdir1    
    mkdir $mdir1

    dir1=$(ls -l $path1  |awk '/^d/ {print $NF}')

    for j in $dir1
    do
        mdir2='/home/lion/yuedata/outRGB/'"${i}/""${j}"
        echo $mdir2
        mkdir $mdir2

        path2="${path1}/""${j}"
        echo $path2
        cd $path2

        for filename in `ls`
        do 
            echo $filename
            createfile="touch /home/lion/yuedata/outRGB/${i}/${filename}.txt"
            $createfile

            cmd="eval /home/lion/yuelib/dense_trajectory_release_v1.2/release/DenseTrack ${path1}/${filename} -L 30 >> /home/lion/yuedata/outRGB/${i}/${filename}.txt"

            start=`date +"%Y-%m-%d %H:%M:%S"`            
            $cmd
            end=`date +"%Y-%m-%d %H:%M:%S"`
            Sys_start=`date -d  "$start" +%s`
            Sys_end=`date -d  "$end" +%s`
            echo 'time per avi: '$(($Sys_end-$Sys_start))' s'  
        done
    done
done

  • 0
    点赞
  • 0
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值