红联Linux门户
Linux帮助

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

发布时间:2016-08-09 13:30:10来源:linux网站作者:A_cainiao_A
这个脚本使我写的第一个真正有用的脚本,折腾了半天。主要可以实现的功能就是:
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
 
带有计时功能的版本:
 
#!/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
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23147.html