記錄一個shell腳本事例,事例中包括shell的一些語法(函數定義、表達式運算、if、case...)
#!/bin/sh #獲取當前時間 RUN_TIME=`date +%H%M%S` #取當前日期前一天 get_ydate() { #設置當前年月日 TODAY=`date +%Y%m%d` month=`date +%m` day=`date +%d` year=`date +%Y` #字符轉換稱數字 month=`expr $month + 0` #取前一天 day=`expr $day - 1` #如果前一天為0,進行如下處理 if [ $day -eq 0 ]; then #取前一月月份. month=`expr $month - 1` #如果前一月為0,則取前一年,月份取第12月 if [ $month -eq 0 ]; then month=12 day=31 year=`expr $year - 1` #如果前一月份不為零,則根據月份來判斷該天是該月的第幾天 else case $month in 1|3|5|7|8|10|12) day=31;; 4|6|9|11) day=30;; 2) if [ `expr $year % 4` -eq 0 ]; then if [ `expr $year % 400` -eq 0 ]; then day=29 elif [ `expr $year % 100` -eq 0 ]; then day=28 else day=29 fi else day=28 fi ;; esac fi fi #按照YYYYMMDD格式打印年日期 acct_date=`printf "%04d%02d%02d" "$year" "$month" "$day"` echo $RUN_TIME echo $acct_date } get_ydate
