Fish Shell:
So sánh hai ngày
Làm thế nào:
Với Fish Shell, chúng ta có thể so sánh hai ngày sử dụng lệnh date
. Dưới đây là các ví dụ.
# Lấy ngày hiện tại theo giây kể từ kỷ nguyên
set current_date (date +%s)
# Chuyển đổi một ngày cụ thể thành giây kể từ kỷ nguyên
set specific_date (date -d "2023-04-01" +%s)
# So sánh các ngày
if test $specific_date -lt $current_date
echo "Ngày cụ thể sớm hơn ngày hiện tại."
else if test $specific_date -eq $current_date
echo "Các ngày giống nhau."
else
echo "Ngày cụ thể muộn hơn ngày hiện tại."
end
Kết quả mẫu nếu ngày hiện tại là sau ngày 1 tháng 4 năm 2023:
Ngày cụ thể sớm hơn ngày hiện tại.
Sâu hơn nữa
Trong lịch sử, so sánh các ngày trong lập trình đã gặp một chút rắc rối do nhiều định dạng ngày và múi giờ khác nhau. Fish Shell đơn giản hóa nhiệm vụ này với hàm date
đã tích hợp sẵn, chuyển đổi ngày thành giây kể từ kỷ nguyên Unix (1 tháng 1 năm 1970). Điều này cung cấp cho chúng ta một điểm tham chiếu vũ trụ để so sánh.
Các phương án thay thế cho Fish Shell để so sánh ngày bao gồm ngôn ngữ kịch bản như Python hoặc sử dụng công cụ thao tác date
có sẵn trong hệ thống dựa trên Unix, như dateutil
trong GNU core utilities (coreutils). Về cách thực hiện, khi chúng ta sử dụng date +%s
, Fish nội bộ gọi lệnh date
của hệ thống, đó là lý do tại sao nó hiệu quả trên các nền tảng.
So sánh ngày cũng quan trọng cho công việc cron, kịch bản sao lưu và kiểm soát truy cập dựa trên thời gian. Thành thạo so sánh ngày mang lại sự tự động hóa trơn tru hơn và ít lỗi thời gian hơn.