[問題] 時間增減的計算

作者: 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