時間增減的計算 - Linux

Table of Contents

目前在寫一個備份用得程式
希望可以把要備份保留的數量做成變數來指定
像下面~設定保留 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}"

但是執行的結果如下
在刪除日期的檔名沒被抓到
感覺上是變數沒被抓進去

[root@linux10 ~]# sh test2.sh
date: invalid date ‘ -${del_num} day’
Time(stamp): 20201116_1026
DEL(stamp_del):
[root@linux10 ~]#

不知道有沒有哪位可以指點一下這個寫法是哪裡有問題?

--
『老闆你好 我是國立的』 『老闆你好 我是私立的』 『腦~~~~~~~闆~~~~~~』 Amy!
有消息會跟你聯絡 有消息會跟你聯絡 給她個私人秘書職位
◤ ◥ ◤◥ 國立
-○=○- -□=□- ● ● ◤ ◥ 私立
) 尬不過
-? - )) 兩粒

--

All Comments

Andrew avatarAndrew2020-11-18
單引號改用雙引號
Ethan avatarEthan2020-11-21
day前面空百拿掉
Bethany avatarBethany2020-11-23
-要拿掉 -在變數裡面有特別意義
Isla avatarIsla2020-11-26
還是+忘了
反正改了就應該好了
Susan avatarSusan2020-11-28
我記得是dash在變數是若空則q的意義
escape 掉那個dash用返斜線試試看 我懶得試了但應該是
這原因
Faithe avatarFaithe2020-12-01
我輸出你修改後的可以欸
Noah avatarNoah2020-12-03
我看是不是sh dash bash版本的關係
Suhail Hany avatarSuhail Hany2020-12-06
第一行加個#!/bin/bash試試看
Mary avatarMary2020-12-08
#!/bin/sh #!/bin/dash 都試試看
先不要動-
Olga avatarOlga2020-12-11
個人script寫完都會先shellcheck 因為實在是不太熟XD
Sierra Rose avatarSierra Rose2020-12-13
等樓主看看怎麼說
Dora avatarDora2020-12-16
一個就好 不要兩個
可以兩個嗎==
Blanche avatarBlanche2020-12-18
是請你個別試試看那三個
Catherine avatarCatherine2020-12-21
刪除7天前資料, 用 find -mtime -delete 最簡單
Regina avatarRegina2020-12-23
說不定是提供sftp? 畢竟ftp和telnet一樣都是以前明碼傳輸
時代的產物,不提供很正常