1 for errorlog in `ls ${log_source_directory} | grep ${today}`
2 do
3 if [ ! -z ${errorlog} ] && [ -s ${log_source_directory}/${errorlog} ] ; then
4 log_time=$(echo ${errorlog} | sed 's/.*_2010//; s//-//; s//-//; s//-//; s/_.*//')
5 if [ ${time} -lt ${log_time} ]; then
6 cp ${log_source_directory}/${errorlog} ${log_target_derectory}/${errorlog}.launcher
7 echo "Copy ${errorlog} to ${log_target_derectory}"
8 fi
9 else
10 echo "No errer log exist."
11 fi
12 done
1 得到${log_source_directory} 目录中所有这样的文件,其文件名中含有${today} 的文件。其中errorlog 表示每一个这样的文件。
3 判断条件是否满足,第一个条件${errorlog}不为空, 第二个条件 ${log_source_directory}/${errorlog} 文件存在
4 使用sed 替换字符串
5 判断条件是否满足,${time} 小与 ${log_time}。
6 拷贝文件
注意:' ` " 的区别。` 键是"Tab" 上面的那个键。用来表示执行命令的。
time=`date +%Y%m%d%H%M%S` 年月日小时分秒
time=`date +%Y_%m_%d_%H_%M_%S` 年_月_日_小时_分_秒
上面的有点笨了,可以参考这个方法:
for myfile in /etc/r*
do
if [ -d "$myfile" ];then
echo "$myfile (dir)"
else
echo "$myfile"
fi
done
支持同配符。。。。。。。