ฉันต้องตรวจสอบเวลาปัจจุบันและยกเลิกสคริปต์หากไม่ใช่เวลาที่เหมาะสมของวันที่ฉันควรจะรัน นอกจากนี้หากใครก็ตามที่ทำงานมันควรยกเลิก
ตัวอย่างเช่น: ฉันต้องการสคริปต์ของฉันให้ทำงานเฉพาะเมื่อเริ่มต้นระหว่าง 22.00 น. ถึง 2.00 น. (หน้าต่าง 4 ชั่วโมง)
ขณะนี้ฉันกำลังทำต่อไปนี้ สละเวลากับdate +%k%M
และเปรียบเทียบกับหมายเลขที่เข้ารหัสยาก
#!/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
ฉันต้องการที่จะรู้ว่ามีวิธีการที่มีประสิทธิภาพอื่น ๆ ที่เกี่ยวข้องกับการเปรียบเทียบเวลาในsh
หรือbash
ไม่?
@ Eddy ไม่ไม่ใช่วันที่, เป็นเวลาที่ฉันต้องเปรียบเทียบ
—
mtk
ฉันคิดว่าภายในไม่กี่วินาทีมันจะดีกว่า:
—
Eddy_Em
currTime=$(date +%s); lower=$(date +%s --date="2:00"); upper=$(date +%s --date="22:00"); if [$currTime -gt $lower -a $currTime -lt $upper]; then
…
ทำไมไม่ใส่สคริปต์ลงใน crontab? ด้วยวิธีนี้คุณมั่นใจได้ว่ามันจะทำงานในเวลาที่กำหนด
—
BitsOfNix
date +%s
เวลาตัวอย่างเช่น: