Bash изчакайте натискането на клавиш

Bash Wait Keypress



Командата 'read' се използва за въвеждане на потребителски въвеждане в bash скрипт. Можем да въведем въвеждане в bash script, като използваме различни видове опции с командата read. Понякога трябва да напишем скрипта по такъв начин, че скриптът да се изпълнява, докато не бъде натиснат определен ключ или конкретният скрипт ще се изпълни въз основа на конкретния ключ или програмата ще изчака определено време, докато се натисне който и да е клавиш. Как можете да напишете bash скрипт, за да изчакате конкретен ключ или ключ за някои задачи, е показано в този урок, като използвате различни примери.

Пример №1:

Създайте bash файл със следния скрипт. Когато стартирате скрипта, той ще продължи, докато потребителят не натисне който и да е клавиш. Скриптът ще изчаква въвеждането от потребителя на всеки 3 секунди и ако потребителят не натисне нито един клавиш, той ще отпечата съобщението, в очакване на натискане на клавиш .







#!/bin/bash
изхвърлен „Натиснете произволен клавиш, за да продължите“
докато [ вярно ];направете
Прочети -T 3 1
ако [ $?=0 ];тогава
изход;
иначе
изхвърлен „в очакване на натискането на клавиш“
бъда
Свършен

Стартирайте скрипта.



$башkey1.sh

Изход:







Пример 2:

Създайте bash файл със следния скрипт. В този пример се използва безкраен цикъл while, който ще прекрати, когато потребителят натисне „q“. Ако потребителят натисне който и да е клавиш без „q“, стойността на променливата на брояча ще се увеличи с 1 и ще отпечата стойността.

#!/bin/bash
изхвърлен 'Натиснете' q ', за да излезете'
броя=0
докато:;направете
Прочети 1да се<&1
ако [[ $ k= q]];тогава
printf 'нИзлизане от програматан'
прекъсване
иначе
((броя=$ count+1))
printf 'нИтерация за$ countпътин'
изхвърлен 'Натиснете' q ', за да излезете'
бъда
Свършен

Стартирайте скрипта.



$башkey2.sh

Изход:

Пример#3:

Създайте bash файл със следния скрипт, който ще изпълнява различни типове задачи въз основа на натиснатия от потребителя клавиш. Ако потребителят натисне „1“, той ще добави два аргумента от командния ред и ще отпечата. Ако потребителят натисне „2“, той ще извади два аргумента от командния ред и ще отпечата. Скриптът ще работи непрекъснато, докато потребителят не натисне „3“.

#!/bin/bash
v1=$ 1
v2=$ 2
докато:
направете
изхвърлен '1. Допълнение '
изхвърлен '2. Изваждане '
изхвърлен '3. Излез '
изхвърлен „Тип 1 или 2 или 3:“
Прочети 1 -T петнадесетда се
printf 'н'
случай $ a в
1* ) изхвърлен '$ v1+$ v2=$ (($ v1+$ v2)) ';;

2* ) изхвърлен '$ v1-$ v2=$ (($ v1- $ v2)) ';;

3* ) изход 0;;


* ) изхвърлен 'Опитай пак.';;
esac
Свършен

Изпълнете скрипта с две стойности на числови аргументи.

$башkey3.sh35 петнадесет

Изход:

Пример#4:

Създайте bash файл със следния скрипт. Скриптът ще се прекрати, когато потребителят натисне клавиша ESC. Този скрипт ще отпечата клавишите, натиснати от потребителя, докато не бъде натиснат клавиш ESC.

#!/bin/bash
потребителски вход=''
изхвърлен „Натиснете клавиша ESC, за да излезете“
# прочетете един знак
докато Прочети -r -n1ключ
направете
# if input == ESC ключ
ако [[ $ ключ== $'И' ]];
тогава
прекъсване;
бъда
# Добавете ключа към променливата, която се натиска от потребителя.
потребителски вход+=$ ключ
Свършен
printf 'нВъведохте:$ userinputн'

Стартирайте скрипта.

$башkey4.sh

Изход:

Пример#5:

Създайте bash файл със следния код, който ще изчака клавиша ENTER да прекрати скрипта. Скриптът ще вземе име на сървър като вход и ще се опитва да пинг сървъра на всеки 2 секунди. Ако командата ping получи отговора от сървъра, тя ще прекрати скрипта, като покаже изхода, в противен случай ще изчака отговора на потребителя или клавиша ENTER, като отпечата съобщението, опитвайки се да се свърже с ....

#!/bin/bash
изхвърлен 'Въведете адреса на сървъра, който искате да пинг'
Прочетисървър
докато ! пинг -° С 1 -IN 2 $ сървър
направете
изхвърлен „Опитвам се да се свържа с$ сървър'
изхвърлен 'Натиснете [ENTER] за прекратяване'
Прочети 1 -T 1ключ
ако [[ $ ключ== $' x0a' ]];# if input == ENTER ключ
тогава
изход 0
бъда
Свършен
printf '%сн' '$ сървърбяга'

Стартирайте скрипта.

$башkey5.sh

Изход:

Заключение:

Този урок показва как можете да напишете bash скрипта по различни начини, които ще изчакат въвеждането на потребителя, за да извърши някаква конкретна задача или да прекрати скрипта. Надявам се, че след като сте практикували горните примери, ще можете да напишете скрипта по такъв начин, че да изчакате всяко натискане на клавиш и да извършите конкретната задача въз основа на натиснатия от потребителя клавиш.