బాష్లో, కొన్నిసార్లు మీరు పూర్తి చేయడానికి చాలా సమయం పట్టే ఆదేశాన్ని అమలు చేయాల్సి రావచ్చు మరియు అది నిరవధికంగా పూర్తయ్యే వరకు మీరు వేచి ఉండకూడదు. ఈ సమస్యకు ఒక పరిష్కారం ఏమిటంటే, ఒక కమాండ్ రన్ చేయగల సమయాన్ని పరిమితం చేసే టైమ్ అవుట్ కమాండ్ని ఉపయోగించడం. ఈ కథనం, అనవసరమైన ఆలస్యం లేకుండా బాష్లో కమాండ్ను ఎలా టైమ్అవుట్ చేయాలో చర్చిస్తుంది.
బాష్లో కమాండ్ గడువు ముగిసింది
బాష్లో కమాండ్ని గడువు ముగియడానికి, మనం దీనిని ఉపయోగించవచ్చు 'సమయం ముగిసినది' ఆదేశం. “టైమ్అవుట్” కమాండ్ అన్ని సిస్టమ్లలో డిఫాల్ట్గా అందుబాటులో లేదు, అయితే ఇది చాలా Linux డిస్ట్రిబ్యూషన్లలో ప్యాకేజీ మేనేజర్ని ఉపయోగించి ఇన్స్టాల్ చేయబడుతుంది, ఇక్కడ “టైమ్ అవుట్” కమాండ్ యొక్క సింటాక్స్ ఉంది:
సమయం ముగిసినది [ ఎంపిక ] వ్యవధి ఆదేశం [ ARG ]
ఇక్కడ “OPTION” అనేది ఒక ఐచ్ఛిక ఆర్గ్యుమెంట్, ఇది గడువు ముగిసిన కమాండ్ యొక్క ప్రవర్తనను నిర్దేశిస్తుంది, “DURATION” అనేది కమాండ్ అమలు చేయడానికి సమయ పరిమితి మరియు “COMMAND [ARG]” అనేది మనం అమలు చేయాలనుకుంటున్న ఆదేశం మరియు దాని ఆర్గ్యుమెంట్లు.
ఉదాహరణకు, మనం 'స్లీప్' కమాండ్ను ఐదు సెకన్ల పాటు అమలు చేయాలనుకుంటున్నాము, కానీ మేము మూడు సెకన్ల తర్వాత కమాండ్ను టైమ్అవుట్ చేయాలనుకుంటున్నాము మరియు ఇక్కడ ఉదాహరణ షెల్ స్క్రిప్ట్ ఉంది:
#!/బిన్/బాష్
ప్రతిధ్వని '3 సెకన్ల సమయం ముగియడంతో నిద్ర ఆదేశాన్ని ప్రారంభించడం...'
గడువు 3సె నిద్ర 5సె
ప్రతిధ్వని 'నిద్ర కమాండ్ పూర్తయింది.'
ఇక్కడ నేను సమయం ముగిసే వ్యవధిని 3 సెకన్లుగా మరియు “స్లీప్” ఆదేశం యొక్క వ్యవధిని 5 సెకన్లుగా పేర్కొన్నాను. 'స్లీప్' కమాండ్ సాధారణంగా 5 సెకన్ల పాటు రన్ అయినప్పటికీ, 'టైమ్ అవుట్' కమాండ్ 3 సెకన్ల తర్వాత 'స్లీప్' కమాండ్ను ఆపివేస్తుంది.
“టైమ్అవుట్” కమాండ్ను ఉపయోగిస్తున్నప్పుడు అనవసరమైన ఆలస్యాన్ని నివారించడానికి, మనం “-k” ఎంపికను ఉపయోగించవచ్చు. “-k” ఎంపిక గడువు పరిమితిని మించితే ఆదేశానికి పంపబడే సిగ్నల్ను నిర్దేశిస్తుంది. ఈ సంకేతం కమాండ్ సరసముగా ముగిసే వరకు వేచి ఉండకుండా, ఆదేశాన్ని వెంటనే ముగించేలా చేస్తుంది.
ఉదాహరణకు, మనం 'స్లీప్' కమాండ్ను ఐదు సెకన్ల పాటు అమలు చేయాలనుకుంటున్నాము, అయితే మూడు సెకన్ల తర్వాత కమాండ్ను టైమ్అవుట్ చేయాలనుకుంటున్నాము మరియు సమయం ముగిసిన పరిమితిని మించి ఉంటే SIGINT సిగ్నల్ను పంపాలనుకుంటున్నాము. కింది ఆదేశాన్ని అమలు చేయడం ద్వారా మనం దీన్ని చేయవచ్చు:
#!/బిన్/బాష్
ప్రతిధ్వని '3 సెకన్ల సమయం ముగిసింది మరియు 2 సెకన్ల తర్వాత SIGINT సిగ్నల్తో నిద్ర కమాండ్ను ప్రారంభించడం'
సమయం ముగిసింది -k 2s 3s నిద్ర 5s
ప్రతిధ్వని' నిద్రించు ఆదేశం పూర్తయింది. '
ఇక్కడ నేను గడువు ముగిసే వ్యవధిని 3 సెకన్లుగా పేర్కొన్నాను మరియు సమయం ముగిసే పరిమితిని మించి ఉంటే SIGINTగా పంపబడే సిగ్నల్ని నేను పేర్కొన్నాను. “-k 2s” ఎంపిక గడువు ముగిసిన రెండు సెకన్ల తర్వాత SIGINT సిగ్నల్ పంపబడాలని నిర్దేశిస్తుంది.
ముగింపు
బాష్లో కమాండ్ని గడువు ముగియడం అనేది కమాండ్లను మరింత సమర్థవంతంగా అమలు చేయడంలో మరియు అనవసరమైన జాప్యాలను నివారించడంలో మీకు సహాయపడే ఉపయోగకరమైన సాధనం. “టైమ్అవుట్” కమాండ్ మరియు “-k” ఎంపికను ఉపయోగించడం ద్వారా, మీరు కమాండ్ రన్ చేయగల సమయాన్ని పరిమితం చేయవచ్చు మరియు గడువు పరిమితిని మించిపోయినట్లయితే వెంటనే దాన్ని ముగించడానికి సిగ్నల్ను పంపవచ్చు. ఇది మీకు సమయాన్ని ఆదా చేయడంలో మరియు మీ స్క్రిప్ట్లను మరింత సమర్థవంతంగా అమలు చేయడంలో సహాయపడుతుంది.