Linux

Kiểm tra date format trong shell script

Bài viết này sẽ hướng dẫn các bạn kiểm tra định dạng ngày tháng trong shell script linux sau đó in ra danh sách ngày tháng đã chọn.

Tạo file script

Ở đây mình dùng định dạng YYYY-MM-DD

Các bạn sử dụng vim hoặc nano tạo file check_date.sh

nano check_date.sh

Nội dung file như sau:

#!/bin/bash

startdate=2018-09-01
enddate=2018-09-40

start=$(date '+%Y-%m-%d' -d $startdate)
end=$(date '+%Y-%m-%d' -d $enddate)
if [[ $end < $start ]]
  then echo "check start & end date"
elif [ $start != $startdate ]
  then echo "date format invalid"
elif [ $end != $enddate ]
  then echo "date format invalid"
else
  d=
  n=-1
  until [ "$d" = "$enddate" ]
  do
    ((n++))
    d=$(date -d "$startdate + $n days" +%Y-%m-%d)
    echo $d
  done
fi

Trong đó:

  • startdate: ngày bắt đầu
  • enddate: ngày kết thúc
  • $end < $start: kiểm tra ngày kết thúc phải lớn hơn ngày bắt đầu
  • $start != $startdate: kiểm tra định dạng ngày bắt đầu
  • $end != $enddate: kiểm tra định dạng ngày kết thúc

Thực thi

Để thực thi shell script trên chúng ta dùng lệnh sau:

chmod u+x check_date.sh

Thực thi tập tin bằng lệnh sau:

sh check_date.sh

Vì enddate (2018-09-40) bị sai nên console log như sau:

[root@localhost]# sh check_date.sh
date: invalid date `2018-09-40'
check start & end date

Sửa lại enddate đúng định dạng (ví dụ: 2018-09-11) ta sẽ có console log như sau:

[root@localhost]# sh check_date.sh
2018-09-01
2018-09-02
2018-09-03
2018-09-04
2018-09-05
2018-09-06
2018-09-07
2018-09-08
2018-09-09
2018-09-10
2018-09-11

Chúc các bạn thành công.
Xem thêm các bài viết về hệ điều hành Linux

Share:
Leave a Comment
Share
Published by
Admin

Recent Posts

Hướng dẫn nhắn tin Telegram trên Linux Terminal

Như các bạn đã biết thì Telegram là một dịch vụ tin nhắn tuyệt vời…

4 năm ago

Cài đặt Apache Tomcat 9 trên Ubuntu 20.04

Apache Tomcat là gì? Apache Tomcat là một web server HTTP được phát triển bởi…

4 năm ago

04/2020 – Build PC chơi game giá 20 triệu

20 triệu có lẽ là một mức chi phí khá lý tưởng cho một máy…

4 năm ago

Sử dụng Microsoft Edge Chromium: Thay đổi tìm kiếm mặc định, cài Chrome Extensions

Micosoft chính thức phát hành Microsoft Edge Chromium Microsoft đã chính thức tung ra trình…

4 năm ago

CentOS 8 – Những thay đổi và tính năng

CentOS 8 đã phát hành ngày 25/09/2019, phiên bản 8 lần này có những thay đổi…

5 năm ago

Top 5 Laptop cho dân văn phòng 2019

Thời buổi công nghệ phát triển, phần lớn công việc của con người đều có…

5 năm ago