自動目錄
FREEBSD中的date函數和linux的參數不太一樣,但是更方便
顯示今天、前一天日期
顯示今天日期
# date +"%a %b %d %T %Z %Y"
週四 7月 04 09:24:35 CST 2019
# date -v -1d +%Y%m%d%H%M%
201907030848
顯示上個月,產生字串
$ date -v-1m +'%y%m%d.sql'
190604.sql
十天後的日期、順便產生週次
$ date -v +10d +'%Y%m --%W'
201908 --27
一個小時候的timestamp
$ date -v +1H +'%s'
1562207946
列印時間
$ date +%T
09:48:25
把日期指定給變數
這個好處是可以產生字串格式的檔案名稱
# set curr_day=`/bin/date -v-1d +'%y%m%d.sql'`
# echo $curr_day
190703.sql
環境變數 locale
把日期輸出改為英文,在Freebsd 下使用 setenv
# setenv LC_TIME en_US.utf8
# setenv LC_TIME _US.utf8
假若以上命令無效(也許因為 LC_ALL 已經設定),則改下
# setenv LC_ALL en_US.utf8
可是這樣會改變目前登入環境的 locale,(我們可以下 locale 指令來看 locale ),雖然不會影響系統的 locale,但我們有更好的解決方法,就是要使用時再改 LC_ALL,寫在 shell 裡就能解決這個問題:
# /usr/bin/env LC_ALL=en_US.UTF-8 /bin/date -v -1m -j '+%Y%b'
有關變數的意義,請參考「Linux shell 的date表示法」這篇的欄目三
參考資料
[1] https://blog.sleeplessbeastie.eu/2011/12/15/how-to-find-yesterdays-or-tomorrows-date-using-shell/
原文 2008-11-24 15:39:12 2019-7-4更新