லினக்ஸில் கட்டளைக்காக காத்திருங்கள்

Wait Command Linux



காத்திரு லினக்ஸின் உள்ளமைக்கப்பட்ட கட்டளை ஆகும், இது எந்த இயங்கும் செயல்முறையையும் முடிக்க காத்திருக்கிறது. காத்திரு கட்டளை ஒரு குறிப்பிட்ட செயல்முறை ஐடி அல்லது வேலை ஐடியுடன் பயன்படுத்தப்படுகிறது. ஷெல்லில் பல செயல்முறைகள் இயங்கும்போது கடைசி கட்டளையின் செயல்முறை ஐடி மட்டுமே தற்போதைய ஷெல்லால் அறியப்படும். இந்த முறை காத்திருப்பு கட்டளை செயல்படுத்தப்பட்டால், அது கடைசி கட்டளைக்கு பயன்படுத்தப்படும். காத்திருப்பு கட்டளையுடன் செயல்முறை ஐடி அல்லது வேலை ஐடி கொடுக்கப்படாவிட்டால், அது தற்போதைய அனைத்து குழந்தை செயல்முறைகளும் முடிவடையும் வரை வெளியேறும் நிலையை காத்திருக்கும்.

காத்திருப்பு கட்டளையின் வெளியேறும் நிலை மதிப்பு கடைசியாக குறிப்பிட்ட ஓபராண்டால் குறிப்பிடப்பட்ட கட்டளையைப் பொறுத்தது. எந்தவொரு செயல்முறையும் அசாதாரணமாக முடிவடையும் போது வெளியேறும் நிலை 128 ஐ விட அதிகமாக இருக்கும் மற்றும் மற்ற கட்டளைகளின் வெளியேறும் நிலை மதிப்புகளிலிருந்து வேறுபட்டதாக இருக்கும். காத்திரு கட்டளை 0 மதிப்புடன் வெளியேறுகிறது, அது எந்த ஓபராண்ட் இல்லாமல் அழைக்கும் போது மற்றும் அனைத்து செயல்முறை ஐடிகளும் தற்போதைய ஷெல் மூலம் அறியப்படுகிறது. காத்திருப்பு கட்டளை ஏதேனும் பிழையைக் கண்டறிந்தால் அது 1 முதல் 126 வரை எந்த மதிப்பையும் அளிக்கிறது. கடைசி செயல்முறை ஐடி தெரியாவிட்டால் காத்திருப்பு கட்டளை மதிப்பு 127 உடன் வெளியேறும். லினக்ஸில் காத்திருப்பு கட்டளையை நீங்கள் எவ்வாறு பயன்படுத்தலாம் என்பது இந்த டுடோரியலில் காட்டப்பட்டுள்ளது.







எடுத்துக்காட்டு -1: பல செயல்முறைகளுக்கு காத்திருப்பு கட்டளையைப் பயன்படுத்துதல்

பின்வரும் ஸ்கிரிப்டை இயக்கிய பிறகு, இரண்டு செயல்முறைகள் பின்னணியில் இயங்கும் மற்றும் முதல் எதிரொலி கட்டளையின் செயல்முறை ஐடி $ process_id மாறியில் சேமிக்கப்படும். காத்திருப்பு கட்டளை $ process_id உடன் செயல்படுத்தப்படும் போது அடுத்த கட்டளை முதல் எதிரொலி கட்டளையின் பணியை முடிக்க காத்திருக்கும். இரண்டாவது காத்திருப்பு கட்டளை 'உடன் பயன்படுத்தப்படுகிறது $! 'இது கடைசி இயங்கும் செயல்முறையின் செயல்முறை ஐடியைக் குறிக்கிறது. ' $? காத்திருப்பு கட்டளையின் நிலை மதிப்பைப் படிக்கப் பயன்படுகிறது.



#!/பின்/பேஷ்
வெளியே எறிந்தார் 'காத்திருப்பு கட்டளை 1' சோதனை &
செயல்முறை_ஐடி=$!
வெளியே எறிந்தார் 'சோதனை காத்திருப்பு கட்டளை 2' &
காத்திரு $ process_id
வெளியே எறிந்தார்வேலை1அந்தஸ்துடன் வெளியேறியது$?
காத்திரு $!
வெளியே எறிந்தார்வேலை2அந்தஸ்துடன் வெளியேறியது$?

வெளியீடு:



$பேஷ்காத்திருங்கள்





எடுத்துக்காட்டு -2: கொலை கட்டளையைப் பயன்படுத்திய பிறகு காத்திருப்பு கட்டளையை சோதிக்கவும்

பின்வரும் ஸ்கிரிப்டில், செயல்முறையை முடித்த பிறகு காத்திருப்பு கட்டளை செயல்படுத்தப்படும். ஸ்லீப் கட்டளை ஒரு பின்னணி செயல்முறையாக இயங்குகிறது மற்றும் இயங்கும் செயல்முறையை நிறுத்த கொல்ல கட்டளை செயல்படுத்தப்படுகிறது. அதன் பிறகு காத்திருப்பு கட்டளை நிறுத்தப்பட்ட செயல்முறையின் செயல்முறை ஐடியுடன் செயல்படுத்தப்படுகிறது. வெளியீடு நிறுத்தப்பட்ட செயல்முறையின் செயல்முறை ஐடியைக் காண்பிக்கும்.

#!/பின்/பேஷ்
வெளியே எறிந்தார் காத்திருப்பு கட்டளையை சோதிக்கிறது
தூங்கு இருபது &
பிட்=$!
கொல்ல $ pid
காத்திரு $ pid
வெளியே எறிந்தார் $ pidநிறுத்தப்பட்டது.

வெளியீடு:



$பேஷ்காத்திரு 2. ஷி

எடுத்துக்காட்டு -3: வெளியேறும் நிலை மதிப்பைச் சரிபார்க்கவும்

பின்வரும் ஸ்கிரிப்டில், செயல்பாடு காசோலை() இரண்டு வாத மதிப்புகளால் அழைக்கப்படுகிறது. டுடோரியலின் தொடக்கத்தில் காத்திருப்பு கட்டளை வெற்றிகரமாக செயல்படுத்தப்பட்டால் வெளியேறும் மதிப்பு 0 மற்றும் காத்திருப்பு கட்டளை ஏதேனும் பிழையைக் கண்டறிந்தால் அது 1 மற்றும் 126 க்கு இடையில் எந்த மதிப்பையும் அளிக்கும். ஸ்கிரிப்டை இயக்கிய பிறகு, நீங்கள் 0 ஐ இரண்டாவது வாதமாக அனுப்பினால் மதிப்பு பின்னர் காத்திருப்பு கட்டளை வெற்றிகரமாக முடிவடைகிறது மற்றும் நீங்கள் பூஜ்ஜியத்தை விட அதிக மதிப்பை கடந்து சென்றால் அது தோல்வியுற்றது.

#!/பின்/பேஷ்
செயல்பாடுகாசோலை()
{
வெளியே எறிந்தார் '$ 1 விநாடிகள் தூங்கு'
தூங்கு $ 1
வெளியேறு $ 2
}
காசோலை$ 1 $ 2 &
b=$!
வெளியே எறிந்தார் 'நிலையைச் சரிபார்க்கிறது'
காத்திரு $ b && வெளியே எறிந்தார்சரி|| வெளியே எறிந்தார்சரி அல்ல

வெளியீடு:

$பேஷ்காத்திருங்கள்3 0
$பேஷ்காத்திருங்கள்3 5

பயன்பாட்டு காத்திருப்பு கட்டளையை சரியாக கற்றுக்கொள்ள இந்த டுடோரியல் உதவும் என்று நம்புகிறேன். லினக்ஸில் மற்றொரு கட்டளை உள்ளது, பெயரிடப்பட்டது தூங்கு குறிப்பிட்ட நேரத்திற்கு காத்திருக்க வேண்டும் ஆனால் இந்த கட்டளைகளுக்கு இடையே சில வேறுபாடுகள் உள்ளன. நீங்கள் தெரிந்து கொள்ள ஆர்வமாக இருந்தால் தூக்க கட்டளை பின்னர் நீங்கள் இந்த இணைப்பைப் பார்வையிடலாம்.