சாவி விசை அழுத்தத்திற்காக காத்திருக்கிறது

Bash Wait Keypress



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

எடுத்துக்காட்டு#1:

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







#!/பின்/பேஷ்
வெளியே எறிந்தார் 'மேலும் தொடர ஏதேனும் ஒரு பொத்தானை அழுத்தவும்'
போது [ உண்மை ];செய்
படி -டி 3 -என் 1
என்றால் [ $?=0 ];பிறகு
வெளியேறு;
வேறு
வெளியே எறிந்தார் 'விசை அழுத்தத்திற்காக காத்திருக்கிறது'
இரு
முடிந்தது

ஸ்கிரிப்டை இயக்கவும்.



$பேஷ்key1.sh

வெளியீடு:







எடுத்துக்காட்டு#2:

பின்வரும் ஸ்கிரிப்டுடன் ஒரு பேஷ் கோப்பை உருவாக்கவும். இந்த உதாரணத்தில் ஒரு எல்லையற்ற போது லூப் பயன்படுத்தப்படுகிறது, இது பயனர் 'q' ஐ அழுத்தும்போது நிறுத்தப்படும். பயனர் 'q' இல்லாமல் எந்த விசையையும் அழுத்தினால், கவுண்டர் மாறியின் மதிப்பு 1 ஆல் அதிகரிக்கப்பட்டு மதிப்பை அச்சிடும்.

#!/பின்/பேஷ்
வெளியே எறிந்தார் வெளியேற 'q' ஐ அழுத்தவும்
எண்ண=0
போது:;செய்
படி -என் 1க்கு<&1
என்றால் [[ $ கே= q]];பிறகு
printf ' nதிட்டத்திலிருந்து வெளியேறுதல் n'
இடைவேளை
வேறு
((எண்ண=$ எண்ணிக்கை+1))
printf ' nக்கான மறுபரிசீலனை$ எண்ணிக்கைமுறை n'
வெளியே எறிந்தார் வெளியேற 'q' ஐ அழுத்தவும்
இரு
முடிந்தது

ஸ்கிரிப்டை இயக்கவும்.



$பேஷ்key2.sh

வெளியீடு:

எடுத்துக்காட்டு#3:

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

#!/பின்/பேஷ்
v1=$ 1
v2=$ 2
போது:
செய்
வெளியே எறிந்தார் '1 கூட்டல் '
வெளியே எறிந்தார் '2 கழித்தல் '
வெளியே எறிந்தார் '3 விட்டுவிட'
வெளியே எறிந்தார் -என் வகை 1 அல்லது 2 அல்லது 3: '
படி -என் 1 -டி பதினைந்துக்கு
printf ' n'
வழக்கு $ a இல்
1* ) வெளியே எறிந்தார் '$ v1+$ v2=$ (($ v1+$ v2)) ';;

2* ) வெளியே எறிந்தார் '$ v1-$ v2=$ (($ v1- $ v2)) ';;

3* ) வெளியேறு 0;;


* ) வெளியே எறிந்தார் 'மீண்டும் முயற்சி செய்.';;
எசாக்
முடிந்தது

இரண்டு எண் வாத மதிப்புகளுடன் ஸ்கிரிப்டை இயக்கவும்.

$பேஷ்key3.sh35 பதினைந்து

வெளியீடு:

எடுத்துக்காட்டு#4:

பின்வரும் ஸ்கிரிப்டுடன் ஒரு பேஷ் கோப்பை உருவாக்கவும். பயனர் ESC விசையை அழுத்தும்போது ஸ்கிரிப்ட் நிறுத்தப்படும். இந்த ஸ்கிரிப்ட் ESC விசையை அழுத்தும் வரை பயனர் அழுத்தும் விசைகளை அச்சிடும்.

#!/பின்/பேஷ்
உபயோகம்=''
வெளியே எறிந்தார் 'வெளியேற ESC விசையை அழுத்தவும்'
# ஒரு எழுத்தை வாசிக்கவும்
போது படி -ஆர் -என் 1சாவி
செய்
# உள்ளீடு என்றால் == ESC விசை
என்றால் [[ $ சாவி== $' மற்றும்' ]];
பிறகு
இடைவேளை;
இரு
# பயனரால் அழுத்தப்படும் மாறிக்கு விசையைச் சேர்க்கவும்.
யூஸ்ரின்புட்+=$ சாவி
முடிந்தது
printf ' nநீங்கள் தட்டச்சு செய்தீர்கள்:$ userinput n'

ஸ்கிரிப்டை இயக்கவும்.

$பேஷ்key4.sh

வெளியீடு:

எடுத்துக்காட்டு#5:

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

#!/பின்/பேஷ்
வெளியே எறிந்தார் 'நீங்கள் பிங் செய்ய விரும்பும் சர்வர் முகவரியை உள்ளிடவும்'
படிசர்வர்
போது ! பிங் -சி 1 -என் -இன் 2 $ சேவையகம்
செய்
வெளியே எறிந்தார் 'இணைக்க முயற்சிக்கிறது$ சேவையகம்'
வெளியே எறிந்தார் நிறுத்த [ENTER] ஐ அழுத்தவும்
படி -s -என் 1 -டி 1சாவி
என்றால் [[ $ சாவி== $' x0a' ]];# உள்ளீடு என்றால் == Enter விசை
பிறகு
வெளியேறு 0
இரு
முடிந்தது
printf '%s n' '$ சேவையகம்ஓடிக்கொண்டிருக்கிறது '

ஸ்கிரிப்டை இயக்கவும்.

$பேஷ்key5.sh

வெளியீடு:

முடிவுரை:

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