லினக்ஸில் பேஷ் வெயிட் கட்டளை

Bash Wait Command Linux



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

இந்த டுடோரியலில், லினக்ஸில் பாஷ் வெயிட் கட்டளையை ஆராய்வோம்.







தொடரியல்:

லினக்ஸில் வெயிட் கட்டளையின் பொதுவான தொடரியல்:



காத்திரு [விருப்பம்] ஐடி

ஐடி ஒரு செயல்முறை ஐடி அல்லது வேலை ஐடியாக இருக்கும்.



லினக்ஸில் பாஷ் வெயிட் கட்டளையை விளக்குகிறது:

முதலில், தொடு கட்டளையைப் பயன்படுத்தி ஒரு கோப்பை உருவாக்கவும்:





$தொடுதல்BashWit.sh

கீழேயுள்ள கட்டளையைப் பயன்படுத்தி இந்த கோப்பை இயக்கக்கூடியதாக ஆக்குங்கள்:



$chmod+x கோப்பு பெயர்

இயங்கக்கூடிய சலுகைகள் கோப்பிற்கு வழங்கப்பட்டவுடன், கோப்பைத் திறந்து பேஷ் கோப்பில் ஒரு ஸ்கிரிப்டை எழுதவும்:

#!/பின்/பேஷ்

தூங்கு 3 &

செயல்முறை ஐடி=$!

வெளியே எறிந்தார் 'பிஐடி:$ processID'

காத்திரு $ processID

வெளியே எறிந்தார் 'வெளியேறும் நிலை: $?'

$! BASH இல் ஒரு மாறி, இது மிகச் சமீபத்திய செயல்முறையின் PID ஐ சேமிக்கிறது.

இப்போது, ​​ஸ்கிரிப்டை பின்வருமாறு இயக்கவும்:

$./கோப்பு பெயர்

$./BashWit.sh

செயல்முறை ஐடி மற்றும் இருக்கும் நிலை ஷெல்லில் தோன்றும்.

–N விருப்பத்தைப் பயன்படுத்தி:

–N விருப்பத்துடன், காத்திருப்பு கட்டளை வழங்கப்பட்ட செயல்முறை ஐடியிலிருந்து ஒரு வேலைக்காக மட்டுமே காத்திருக்கிறது அல்லது வேலை விவரங்கள் அதன் வெளியேறும் நிலையை திரும்புவதற்கு முன் முடிக்கின்றன. காத்திருங்கள் -எந்த பின்னணி வேலையும் முடிவடையும் வரை காத்திருக்கிறது மற்றும் எந்த வாதங்களும் வழங்கப்படாவிட்டால் வேலை வெளியேறும் நிலையை அளிக்கிறது.

உங்கள் ஸ்கிரிப்டில் கீழே கொடுக்கப்பட்டுள்ள வரிகளை எழுதுங்கள்:

#!/பின்/பேஷ்

தூங்கு 30 &

தூங்கு 8 &

தூங்கு 7 &

காத்திரு -என்

வெளியே எறிந்தார் 'முதல் வேலை முடிந்தது.'

காத்திரு

வெளியே எறிந்தார் 'அனைத்து வேலைகளும் முடிந்துவிட்டன.'

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

-F விருப்பத்தைப் பயன்படுத்துதல்:

வெளியேறும் குறியீட்டைத் திருப்பித் தருவதற்கு முன் -f விருப்பம் ஒவ்வொரு செயல்முறை ஐடி அல்லது வேலை நிறுத்தப்படும் வரை காத்திருக்கிறது. வேலை கட்டுப்பாடு இயல்புநிலையாக பதிலளிக்கும் வரியில் மட்டுமே கிடைக்கும்.

முனையத்தைத் திறந்து கட்டளையை இயக்கவும்:

செயல்முறை 3944 க்கு காத்திருங்கள்.

வேறு முனைய சாளரத்தைத் திறந்து, செயல்முறையை முடிவுக்குக் கொண்டுவரக் கட்டளையை இயக்கவும்.

நிலை மாற்றப்படும். காத்திருப்பு கட்டளை முடிந்து செயல்முறை வெளியேறும் குறியீட்டை வழங்கும்.

–F கட்டளையுடன் மேலே கொடுக்கப்பட்ட படிகளை மீண்டும் செய்யவும்.

காத்திருப்பு கட்டளையுடன் ஸ்கிரிப்ட்:

நாங்கள் 'ஹலோ.ஷ்' மற்றும் 'பேஷ்.ஷ்' ஸ்கிரிப்ட்களை ஆர்ப்பாட்டத்திற்காக பயன்படுத்துகிறோம். 'Hello.sh' ஸ்கிரிப்ட் 1 முதல் 5 வரை எண்களை அச்சிடுகிறது, மேலும் 'bash.sh' ஸ்கிரிப்ட் hello.sh ஐ அழைக்கிறது மற்றும் பின்னணியில் அதை இயக்குகிறது, ஹலோ.ஷின் PID மற்றும் அது முடிவடையும் வரை காத்திருக்கிறது.

ஹலோ மற்றும் பேஷ் என்ற பெயருடன் இரண்டு ஸ்கிரிப்ட்களை உருவாக்கவும்:

Hello.sh கோப்பில் கீழே கொடுக்கப்பட்டுள்ள வரிகளைச் சேர்க்கவும்:

#!/பின்/பேஷ்

க்கானநான்இல் 1 2 3 4 5 6 7 8 9 10

செய்

வெளியே எறிந்தார்hello.sh - லூப் எண்$ i.

முடிந்தது

பாஷ் ஸ்கிரிப்டில் கீழே கொடுக்கப்பட்டுள்ள வரிகளைச் சேர்க்கவும்:

#!/பின்/பேஷ்

வெளியே எறிந்தார்பேஷ்.ஷ் தொடங்கியது

வெளியே எறிந்தார்ஹலோ.ஷ் தொடங்கியது

./வணக்கம்.ஷ்&

செயல்முறை_ஐடி=$!

காத்திரு $ process_id

வெளியே எறிந்தார்வணக்கம் நிறைவடைந்தது

வெளியீடு:

முடிவுரை:

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