मुझे कमांड की एक श्रृंखला या एक एकल कमांड की आवश्यकता है जो एक विशिष्ट समय की अगली घटना तक सोता है जैसे "4:00" होता है।
मुझे यह कैसे करना है?
at
आदेश या एक cronjob एक विकल्प है क्योंकि मैं स्क्रिप्ट मैं में वर्तमान में कर रहा हूँ छोड़ नहीं होना चाहिए नहीं है।
मैं जिस विशिष्ट मामले की बात कर रहा हूं, वह स्क्रीन में चल रही एक स्क्रिप्ट है। यह बहुत महत्वपूर्ण है कि मैं स्क्रिप्ट के निष्पादन को स्क्रिप्ट द्वारा स्वयं रोकना नहीं चाहता हूं क्योंकि कई महत्वपूर्ण चर संग्रहित हैं जो स्क्रिप्ट के कुछ बिंदु पर आवश्यक हैं। स्क्रिप्ट को हमेशा एक नियमित मामले में निष्पादित नहीं किया जाता है। इसे केवल एक विशिष्ट समय पर निष्पादित करने की आवश्यकता है।
अगर यह स्क्रिप्ट किसी भी फाइल या किसी अन्य कार्य जैसे क्रोनोजर या अन्य स्क्रीन को बनाना होगा तो यह बहुत ही हानिकारक होगा। यह केवल डिजाइन का सवाल है।
मेरे पास एक अच्छा विचार था:
difference=$(($(date -d "4:00" +%s) - $(date +%s)))
if [ $difference -lt 0 ]
then
sleep $((86400 + difference))
else
sleep $difference
fi
क्या आपके पास कोई बेहतर विचार है?
अनुरोध किए जाने पर अधिक जानकारी जोड़ी जाएगी!
date -d
साथ date -j
और की जगह 4:00
के साथ 0400
।