免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3794 | 回复: 10
打印 上一主题 下一主题

删除归档文件的脚本出问题 !!!!!!!!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-08 19:52 |只看该作者 |倒序浏览
请教大家一个linux shell
[oracle@test script]$ sh d1.sh
1_.dbf
1_.dbf
1_.dbf
1_.dbf
1_.dbf
1_.dbf
[oracle@test script]$ cat d1.sh
#!/bin/ksh
del=`ls /opt/oracle/archive/|head -1|cut -f2 -d_`
echo 1_$del_753911435.dbf
while [ $del  -lt  15 ]
do
rm -rf /opt/oracle/archive/1_$del_753911435.dbf
del=`expr $del + 1 `
echo 1_$del_753911435.dbf
done


这样归档文件没有删除

论坛徽章:
0
2 [报告]
发表于 2011-07-08 20:04 |只看该作者
回复 1# ksly1227


    LZ能不能讲清楚些呢,把你的具体需求也写上哦……

论坛徽章:
0
3 [报告]
发表于 2011-07-08 20:09 |只看该作者
[oracle@test archive]$ ls
1_10_753911435.dbf  1_24_753743514.dbf  1_33_753911435.dbf  1_45_753911435.dbf  1_54_753911435.dbf  1_63_753911435.dbf  1_71_753911435.dbf  1_83_753787054.dbf
1_11_753911435.dbf  1_24_753911435.dbf  1_34_753743514.dbf  1_46_753787054.dbf  1_55_753787054.dbf  1_64_753787054.dbf  1_72_753787054.dbf  1_84_753787054.dbf
1_12_753911435.dbf  1_25_753743514.dbf  1_34_753911435.dbf  1_46_753911435.dbf  1_55_753911435.dbf  1_64_753911435.dbf  1_72_753911435.dbf  1_85_753787054.dbf
1_13_753911435.dbf  1_25_753911435.dbf  1_35_753743514.dbf  1_4_753787054.dbf   1_56_753787054.dbf  1_65_753787054.dbf  1_73_753787054.dbf  1_86_753787054.dbf
1_14_753911435.dbf  1_26_753743514.dbf  1_35_753911435.dbf  1_47_753787054.dbf  1_56_753911435.dbf  1_65_753911435.dbf  1_73_753911435.dbf  1_8_753787054.dbf
1_15_753911435.dbf  1_26_753911435.dbf  1_36_753743514.dbf  1_47_753911435.dbf  1_5_753787054.dbf   1_66_753787054.dbf  1_74_753787054.dbf  1_8_753911435.dbf
1_16_753911435.dbf  1_27_753743514.dbf  1_36_753911435.dbf  1_48_753787054.dbf  1_57_753787054.dbf  1_66_753911435.dbf  1_75_753787054.dbf  1_87_753787054.dbf
1_17_753911435.dbf  1_27_753911435.dbf  1_37_753743514.dbf  1_48_753911435.dbf  1_57_753911435.dbf  1_6_753787054.dbf   1_76_753787054.dbf  1_88_753787054.dbf
1_18_753911435.dbf  1_28_753743514.dbf  1_37_753911435.dbf  1_49_753787054.dbf  1_58_753787054.dbf  1_6_753911435.dbf   1_7_753787054.dbf   1_89_753787054.dbf
1_19_753743514.dbf  1_28_753911435.dbf  1_38_753743514.dbf  1_49_753911435.dbf  1_58_753911435.dbf  1_6_753996427.dbf   1_7_753911435.dbf   1_90_753787054.dbf
1_19_753911435.dbf  1_29_753743514.dbf  1_38_753911435.dbf  1_50_753787054.dbf  1_59_753787054.dbf  1_67_753787054.dbf  1_7_753996427.dbf   1_91_753787054.dbf
1_20_753743514.dbf  1_29_753911435.dbf  1_39_753743514.dbf  1_50_753911435.dbf  1_59_753911435.dbf  1_67_753911435.dbf  1_77_753787054.dbf  1_92_753787054.dbf
1_20_753911435.dbf  1_30_753743514.dbf  1_39_753911435.dbf  1_51_753787054.dbf  1_60_753787054.dbf  1_68_753787054.dbf  1_78_753787054.dbf  1_93_753787054.dbf
1_21_753743514.dbf  1_30_753911435.dbf  1_40_753911435.dbf  1_51_753911435.dbf  1_60_753911435.dbf  1_68_753911435.dbf  1_79_753787054.dbf  1_94_753787054.dbf
1_21_753911435.dbf  1_31_753743514.dbf  1_41_753911435.dbf  1_52_753787054.dbf  1_61_753787054.dbf  1_69_753787054.dbf  1_79_753911435.dbf  1_95_753787054.dbf
1_22_753743514.dbf  1_31_753911435.dbf  1_42_753911435.dbf  1_52_753911435.dbf  1_61_753911435.dbf  1_69_753911435.dbf  1_80_753787054.dbf  1_9_753911435.dbf
1_22_753911435.dbf  1_32_753743514.dbf  1_43_753911435.dbf  1_53_753787054.dbf  1_62_753787054.dbf  1_70_753787054.dbf  1_80_753911435.dbf
1_23_753743514.dbf  1_32_753911435.dbf  1_44_753911435.dbf  1_53_753911435.dbf  1_62_753911435.dbf  1_70_753911435.dbf  1_81_753787054.dbf
1_23_753911435.dbf  1_33_753743514.dbf  1_45_753787054.dbf  1_54_753787054.dbf  1_63_753787054.dbf  1_71_753787054.dbf  1_82_753787054.db

我要按照规律删除文件

论坛徽章:
0
4 [报告]
发表于 2011-07-08 20:32 |只看该作者
本帖最后由 lionfun 于 2011-07-08 20:35 编辑

回复 1# ksly1227
  1. 可能是你脚本中的变量这样用是有点小问题的哈!
  2. 将$del 该为${del}试试!
  3. #!/bin/ksh
  4. del=`ls /opt/oracle/archive/ |head -1|cut -f2 -d_`
  5. echo 1_${del}_753911435.dbf
  6. while [ $del -lt 15 ]
  7. do
  8. rm -rf /opt/oracle/archive/1_${del}_753911435.dbf
  9. del=`expr $del + 1 `
  10. echo 1_${del}_753911435.dbf
  11. done
复制代码

论坛徽章:
0
5 [报告]
发表于 2011-07-08 20:36 |只看该作者
强啊,就是像你说的那样,变量为啥不能那样用,还有变量的用法你从哪看的文档,我真对你崇拜

论坛徽章:
0
6 [报告]
发表于 2011-07-08 20:56 |只看该作者
本帖最后由 lionfun 于 2011-07-08 21:01 编辑

回复 5# ksly1227

很简单,比如你首先定义了一个变量del="xxx" 然后你echo $del_add,del_add是合法的变量名的,echo 以后他会打印出del_add变量的值的,除非你用${del}_add明确指定,然后shell 只会替换${del}变量
如果你想了解更清楚些,你可以看看“网中人”前辈“shell 十三問”里的第八问,具体的帖子如下:
http://bbs.chinaunix.net/viewthread.php?tid=218853&extra=&page=7#pid1617953

论坛徽章:
1
技术图书徽章
日期:2013-09-25 21:06:29
7 [报告]
发表于 2011-07-08 20:57 |只看该作者
何必那么麻烦,直接find  /opt/oracle/archive/ -name 1_[1-9][1-9]_* | xargs rm {}

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2011-07-09 13:00 |只看该作者
回复 5# ksly1227


打开ABS,看看第57页。

Advanced Bash-Scripting Guide 3.9.1 中文版.pdf
http://bbs.chinaunix.net/thread-1610033-1-1.html

论坛徽章:
0
9 [报告]
发表于 2011-07-09 17:11 |只看该作者
这个都有讲的吧,变量名前后要加字符,都是要用大括号括起来的

论坛徽章:
0
10 [报告]
发表于 2011-07-11 21:40 |只看该作者
删oracle归档怎么是根据文件名?奇怪的需求
一般都是通过find找到指定时间之前的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP