Linux下的date命令究竟可以幹什麼
因為有個Bash指令碼,想根據使用者給的日期引數(yyyymmdd格式),得到這個日期的前一天的表示。首先想到的就是date命令,網上搜了一大把,其實多數都是互相抄的,date基本用法原本就會,不能用來解決我的問題。
先說不用date命令的方法:
不嫌麻煩就多用幾個判斷,解決每月開頭、每年開頭減去一天的問題,最麻煩的是倒推到上個月最後一天,這一天究竟是28、29還是30、31,還得寫個函式。
再說date的基本用法:
date +%Y%m%d 這是格式化輸出,其他語言多數叫做strftime()
date -d “2 days ago” +%s -d可以輸入一個日期,不過大多是相對於現在時間,+%s是輸出時間戳。
date -d “2010-12-06” +%F -d可以接受ISO格式yyyy-mm-ddTHH:MM:SSZ,也可以接受日期的一些英文格式(月份英文縮寫) %F就是%Y%m%d
接著搜到的我不知道的格式用法,當然對我的問題沒有幫助:
格式字元中加-可以去掉前面的0,加_把前面的0變成一個空格,舉例:date +%-Y%-m%-d 是 2010-12-6 (6前面的0去掉了) date +%_Y%_m%_d 是 2010-12- 6 (6前面有一個空格)
最後是謎底,date可以接受的特殊-d引數:
date -d “1970-01-01 UTC 1291622912 seconds” +%s 在前面的日期上面加上這麼多秒作為輸入。在我的指令碼中這麼用的:
date=$1 #從指令碼的第一個引數得到輸入日期(格式yyyy-mm-dd或者yyyymmdd) datets=`date -d "$1" +%s` #求出這個日期的時間戳,注意兩邊的是反引號,Tab鍵上面那個,下同 yesterts=`expr $datets - 86400` #往前推一天 yesterday=`date -d "1970-01-01 UTC $yesterts seconds" +%Y%m%d` #把它變做輸出
我從那裡知道的,既不是date的help命令,也不是man文件。而是一個網頁 [網址找不著了]
相關文章
- linux 下的date命令Linux
- 什麼是Docker?Docker可以幹什麼?Docker
- linux下date命令用法Linux
- 學好了Python可以幹什麼?Python
- Python爬蟲可以幹什麼?有什麼作用?Python爬蟲
- 學習linux可以幹什麼崗位薪資範圍Linux
- 程式設計師究竟可以幹多少年程式設計師
- Linux date命令Linux
- Linux - date命令Linux
- 基於區塊鏈究竟可以做什麼?區塊鏈
- 大資料究竟能幹什麼,值得我們好好思考大資料
- 學Python可以用來幹什麼?Python
- 現在有什麼賽道可以幹到退休?
- Linux 中date命令Linux
- 學計算機以後可以幹什麼工作計算機
- 雲伺服器可以用來幹什麼?伺服器
- linux的date命令設定Linux
- linux 中 date命令的用法Linux
- linux下 date的用法Linux
- Python爬蟲可以幹什麼?Python爬蟲有什麼用?Python爬蟲
- Python到底可以幹什麼?主要應用領域Python
- Linux基礎命令---dateLinux
- Linux基礎命令—dateLinux
- Linux date命令詳解Linux
- JWT能夠幹什麼,不應該幹什麼?JWT
- 對我而言Linux究竟有什麼魅力Linux
- Linux透過什麼命令可以檢視報文的詳細資訊?Linux
- Web前端就業方向有哪些?可以幹什麼工作呢?Web前端就業
- Java是什麼?主要是幹什麼的?Java
- linux date 命令詳解(ZT)Linux
- Linux中什麼命令可以設定可寫不可刪除的檔案?Linux
- nginx 是什麼,能幹什麼?Nginx
- 學習Python一般可以用來幹什麼?Python
- 學完Python+人工智慧之後可以幹什麼?Python人工智慧
- 每天一個 Linux 命令(37): date 命令Linux
- 每天一個linux命令(37):date命令Linux
- Web前端是什麼?主要是幹什麼的Web前端
- Java能幹什麼?Java