您的位置:首页 > 文档 > Shell >
 文章分类 

请问如何用Shell编: 在当前目录下保留指定日期的文件,其余的全部删除?


创建:2005-10-26 00:49:41
作者:Unlinux
来自: http://www.Unlinux.com

#!/bin/sh
ls -1 |while read line
do
month=`echo $line|awk '{print $6}'`
day=`echo $line|awk '{print $7}'
time=echo $line|awk '{print $8}'
file=`echo $linr|awk '{print $9}'
if [ $month="RIGHTMONTH" -a $day="RIGHTDAY" -a $time="RIGHTTIME"
then
continue
else
rm $filr
fi
done

RIGHTMON RIGHTDAY RIGHTTIME为你制定的时间.
rm


多谢!
但有个问题:
if [ $month="Jul" -a $day="29"]
.....
好像不太对,运行完了好像没有正确判断,什么文件也没删除!


如果echo $LANG = zh
则$month是中文.

不是,是英文,我用ksh -x 来执行,发现一行如: [May=Jul -a 9=29] 它还是继续执行continue的内容,不是执行else

if [ $month="Jul" -a $day="29"]改为
if [ $month="Jul" -a $day="29" ]试试看

成功!
if [ "$month" = "Jul" -a "$day = "29" ]


对,shell编程中的() ,[] , {} 前后最好都要空格。


转载自:http://www.unlinux.com/doc/shell/20051026/55.html

评论】 【加入收藏夹】 【 】 【打印】 【关闭
 *  请尊重我们的劳动,转载请注明出自UnLinux.Com及作者名 * 

※ 相关链接
无相关信息
Copyright © 2005 UnLinux.Com All Rights Reserved