【需求】
用shell腳本判斷輸入的日期是否合法。就是判斷日期是否是真實的日期,比如20170110就是合法日期,20171332就不合法。假定年份不超過4位。
【分析】
判斷日期是否合法,使用cal命令即可,cal命令用法:
1)cal什么都不加,打印全年的日歷
cal
2)cal后面帶一個參數,只能是帶年份
cal 2022
這里的2022為年份,數值最小值為1,最大為999999999。
3)cal后面帶兩個參數,第一個為月份,第二個為年份
cal 10 2022
如果帶兩個參數時,第一個參數范圍為1-12
4)cal后面帶三個參數,第一個為日期,第二個為月份,第三個為年份
cal 10 10 2022
第一個數值范圍1-31
有了以上cal命令的用法總結,接下來就是要把提供的日期劃分成三部分:日期、月份、年份。
截取字符串,可以使用${an2},例如
a=12345 echo${a3}##表示,截取字符串從第一位開始,截取3位 123
【參考答案】
#!/bin/bash if [ $# -ne 1 ] || [ ${#1} -ne 8 ] then echo "Usage: bash $0 yyyymmdd" exit 1 fi datem=$1 year=${datem4} month=${datem2} day=${datem2} if echo $day|grep -q '^0' then day=`echo $day |sed 's/^0//'` fi if cal $day $month $year >/dev/null 2>/dev/null then echo ok else echo "Error: Please input a wright date." exit 1 fi
審核編輯:湯梓紅
-
Shell
+關注
關注
1文章
365瀏覽量
23378 -
腳本
+關注
關注
1文章
389瀏覽量
14866
原文標題:寫一個腳本判斷日期是否合法
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論