मिनट और सेकंड के साथ नींद का उपयोग करें


16

मुझे पता है कि 5 मिनट के लिए 5 मी नींद का उपयोग कैसे करें।

मैं इसे 7 मिनट 30 सेकंड के लिए कैसे उपयोग करूंगा?

जवाबों:


32

से मैनपेज :

दो या अधिक तर्कों को देखते हुए, उनके मूल्यों के योग द्वारा निर्दिष्ट समय की मात्रा के लिए रुकें ।

इसलिए:

sleep 7m 30s

2
अच्छा, मुझे मैन पेज अधिक ध्यान से पढ़ना है ...
रवेक्सिना

4
यह ध्यान देने योग्य है कि यह bashबिल्ट-इन और GNU sleep व्यवहार है। POSIXly, sleepकेवल सेकंड के रूप में पूर्णांक को समझने के लिए आवश्यक है
Sergiy Kolodyazhnyy

17

ऐसा करने का एक और तरीका है:

sleep 7.5m

man sleep

अधिकांश कार्यान्वयनों के विपरीत, जिनके लिए NUMBER की आवश्यकता होती है एक पूर्णांक होता है, यहां NUMBER एक मनमाना फ्लोटिंग पॉइंट संख्या हो सकती है।


10

पहले से ही दो उत्कृष्ट उत्तर हैं, लेकिन मैं थोड़ा विस्तार करना चाहता हूं। अपने टर्मिनल में नीचे कमांड कॉपी और पेस्ट करें:

$ sleep 3d 5h 7m 30.05s &
[1] 7321

यह एक दूसरी प्रक्रिया शुरू करेगा जो 3 दिन, 5 घंटे, 7 मिनट और 30.05 सेकंड के लिए सोएगा। 7321मेरे मामले में प्रक्रिया आईडी (पीआईडी) है ।

पीआईडी ​​उपयोग की पुष्टि करने के लिए

$ ps aux | grep sleep
rick      7321  0.0  0.0  14356   660 pts/2    S    22:40   0:00 sleep 3d 5h 7m 30.05s
root     12415  0.0  0.0  14356   700 ?        S    22:41   0:00 sleep 60
rick     12500  0.0  0.0  21292   968 pts/2    R+   22:41   0:00 grep --color=auto sleep

पहली प्रविष्टि वह है जिसमें हम रुचि रखते हैं। दूसरी प्रविष्टि एक स्थायी कार्यक्रम के लिए है जिसे मैंने स्टार्टअप में चलाया है। तीसरी प्रविष्टि grep कमांड के लिए ही है।

अब यह देखने के लिए कि sleepPID द्वारा उत्पन्न कमांड के लिए (सेकंड में) कितना समय शेष है 7321हम इसका उपयोग कर सकते हैं: एक "नींद" में बचे समय की मात्रा कैसे निर्धारित करें? आदेश:

$ remaining_sleep_time 7321
277304.05
$ remaining_sleep_time 7321
277296.05
$ remaining_sleep_time 7321
277262.05

आदेश के लिए कोड आप अपनी ~/.bashrcफ़ाइल में शामिल कर सकते हैं :

remaining_sleep_time() { # arg: pid
  ps -o etime= -o args= -p "$1" | perl -MPOSIX -lane '
    %map = qw(d 86400 h 3600 m 60 s 1);
    $F[0] =~ /(\d+-)?(\d+:)?(\d+):(\d+)/;
    $t = -($4+60*($3+60*($2+24*$1)));
    for (@F[2..$#F]) {
      s/\?//g;
      ($n, $p) = strtod($_);
      $n *= $map{substr($_, -$p)} if $p;
      $t += $n
    }
    print $t'
}

मेरा शेष समय काम नहीं कर रहा है। एंडी @ 7_ ~ $
शेष_सेप_टाइम

1
@ fixit7 को लिंक के अनुसार remaining_sleep_timeआपकी ~/.bashrcफ़ाइल में कॉपी किया जाना चाहिए । आप कोड को बैश स्क्रिप्ट फ़ाइल में भी डाल सकते हैं।
विनयुनुच्स

5

कमांड नींद हमेशा सेकंड में गिना जाता है। आप ((7x60) +30) सेकंड का उपयोग कर सकते हैं और फिर बस टाइप कर सकते हैं:

450 सो जाओ


3
जैसा कि पहले उल्लेख किया गया है , नींद वास्तव में हमेशा सेकंड समझती है, लेकिन जीएनयू नींद और बैश शेल (ksh और zsh के बारे में निश्चित नहीं) के मामले में - वे अन्य उत्तरों में नोट किए गए पत्र तर्कों की भी अनुमति देते हैं। शेल अंकगणितीय विस्तार के उपयोग से आपके उत्तर को बेहतर बनाया जा सकता है, इसलिए कुछ sleep $((60*7))मिनटों के लिए इस्तेमाल किया जा सकता है
सर्जियो कोलोडियाज़नी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.