[问题] 时间增减的计算

楼主: sanbis (方正無法達成,那麼有沒H)   2020-11-16 10:31:36
目前在写一个备份用得程式
希望可以把要备份保留的数量做成变量来指定
像下面~设定保留 7 天
将 7 天前的档案做删除
del_num=7
stamp=`date +%Y%m%d_%H%M` #时间标记 , format 20110107_1256
stamp_del=`date -d' -${del_num} day' +%Y%m%d_%H%M` #要删除的时间
echo "Time(stamp): ${stamp}"
echo "DEL(stamp_del): ${stamp_del}"
但是执行的结果如下
在删除日期的档名没被抓到
感觉上是变量没被抓进去
[[email protected] ~]# sh test2.sh
date: invalid date ‘ -${del_num} day’
Time(stamp): 20201116_1026
DEL(stamp_del):
[[email protected] ~]#
不知道有没有哪位可以指点一下这个写法是哪里有问题?
作者: ckc1ark (伪物)   2020-11-16 10:42:00
单引号改用双引号
作者: bitlife (BIT一生)   2020-11-16 11:41:00
day前面空百拿掉
作者: ucrxzero (RX-0)   2020-11-16 13:13:00
-要拿掉 -在变量里面有特别意义还是+忘了反正改了就应该好了我记得是dash在变量是若空则q的意义escape 掉那个dash用返斜线试试看 我懒得试了但应该是这原因我输出你修改后的可以欸我看是不是sh dash bash版本的关系第一行加个#!/bin/bash试试看#!/bin/sh #!/bin/dash 都试试看先不要动-
作者: a58524andy (a58524andy)   2020-11-16 17:11:00
个人script写完都会先shellcheck 因为实在是不太熟XD
作者: ucrxzero (RX-0)   2020-11-16 17:27:00
等楼主看看怎么说一个就好 不要两个
作者: newversion (海纳百川)   2020-11-17 17:24:00
删除7天前资料, 用 find -mtime -delete 最简单
作者: bitlife (BIT一生)   2020-11-18 06:31:00
说不定是提供sftp? 毕竟ftp和telnet一样都是以前明码传输时代的产物,不提供很正常

Links booklink

Contact Us: admin [ a t ] ucptt.com