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

王朝other·作者佚名  2008-05-18
宽屏版  字体: |||超大  

#!/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编程中的() ,[] , {} 前后最好都要空格。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有