Tôi cần kiểm tra thời gian hiện tại và hủy bỏ tập lệnh nếu đó không phải là thời điểm thích hợp trong ngày tôi phải chạy nó. Ngoài ra, nếu bất cứ ai khác chạy nó, nó nên hủy bỏ.
Ví dụ: Tôi cần tập lệnh của mình chỉ chạy nếu nó được bắt đầu trong khoảng thời gian từ 10 giờ tối đến 2 giờ sáng (cửa sổ 4 giờ).
Hiện tại tôi đang làm như sau. Dành thời gian date +%k%M
và so sánh với các số được mã hóa cứng
#!/bin/sh
currTime=`date +%k%M`
check_time_to_run()
{
tempTime=$1
if [ $tempTime -gt 200 -a $tempTime -lt 2200 ]; then
echo "Time is between 2 AM and 10 PM. Aborting."
exit 1
else
echo "Time is after 10 PM and before 2 AM. Running normally."
fi
}
check_time_to_run $currentTime
Tôi muốn biết liệu có phương pháp hiệu quả nào khác liên quan đến so sánh thời gian trong sh
hay bash
không?
currTime=$(date +%s); lower=$(date +%s --date="2:00"); upper=$(date +%s --date="22:00"); if [$currTime -gt $lower -a $currTime -lt $upper]; then
...
date +%s
.