您的位置:首页 > 运维架构 > Shell

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

2016-04-22 11:55 851 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 脚本 重定向