Bash gaidiet taustiņu nospiešanu

Bash Wait Keypress



Komanda 'lasīt' tiek izmantota, lai lietotāja ievadītu bash skriptu. Mēs varam ievadīt bash skriptu, izmantojot dažāda veida opcijas ar komandu read. Dažreiz mums ir jāraksta skripts tā, lai skripts darbotos, līdz tiek nospiests konkrēts taustiņš vai konkrētais skripts tiks izpildīts, pamatojoties uz konkrēto atslēgu, vai arī programma gaidīs noteiktu laiku, līdz tiks nospiests kāds taustiņš. Šajā pamācībā, izmantojot dažādus piemērus, ir parādīts, kā rakstīt bash skriptu, lai gaidītu kādu konkrētu atslēgu vai atslēgu dažiem uzdevumiem.

1. piemērs:

Izveidojiet bash failu ar šādu skriptu. Palaižot skriptu, tas turpināsies, līdz lietotājs nospiež jebkuru taustiņu. Skripts gaidīs lietotāja ievadi ik pēc 3 sekundēm, un, ja lietotājs nenospiež nevienu taustiņu, tas izdrukā ziņojumu, gaidot taustiņu nospiešanu .







#!/bin/bash
izmest ārā 'Nospiediet jebkuru taustiņu lai turpinātu'
kamēr [ taisnība ];darīt
lasīt -t 3 -n 1
ja [ $?=0 ];tad
Izeja;
citādi
izmest ārā 'gaidu taustiņu nospiešanu'
būt
darīts

Palaidiet skriptu.



$bashkey1.sh

Izeja:







2. piemērs:

Izveidojiet bash failu ar šādu skriptu. Šajā piemērā tiek izmantota bezgalīga cilpa, kas beigsies, kad lietotājs nospiedīs “q”. Ja lietotājs nospiež jebkuru taustiņu bez “q”, skaitītāja mainīgā vērtība tiks palielināta par 1 un izdrukāta.

#!/bin/bash
izmest ārā 'Nospiediet' q ', lai izietu
saskaitīt=0
kamēr:;darīt
lasīt -n 1uz<&1
ja [[ $ k= q]];tad
printf ' nIziešana no programmas n'
pārtraukums
citādi
((saskaitīt=$ skaits+1))
printf ' nAtkārtojiet par$ skaitsreizes n'
izmest ārā 'Nospiediet' q ', lai izietu
būt
darīts

Palaidiet skriptu.



$bashkey2.sh

Izeja:

3. piemērs:

Izveidojiet bash failu ar šādu skriptu, kas veiks dažāda veida uzdevumus, pamatojoties uz lietotāja nospiesto taustiņu. Ja lietotājs nospiež “1”, tas pievienos divus komandrindas argumentus un drukās. Ja lietotājs nospiež “2”, tas atņem divus komandrindas argumentus un izdrukā. Skripts darbosies nepārtraukti, līdz lietotājs nospiež “3”.

#!/bin/bash
v1=$ 1
v2=2 ASV dolāri
kamēr:
darīt
izmest ārā “1. Papildinājums'
izmest ārā “2. Atņemšana ”
izmest ārā “3. Iziet '
izmest ārā -n '1. vai 2. vai 3. tips:'
lasīt -n 1 -t piecpadsmituz
printf ' n'
gadījumā $ a iekšā
1* ) izmest ārā '$ v1+v2 $=$ (($ v1+$ v2)) '';;

2* ) izmest ārā '$ v1-v2 $=$ (($ v1- $ v2)) '';;

3* ) Izeja 0;;


* ) izmest ārā 'Mēģini vēlreiz.';;
esac
darīts

Palaidiet skriptu ar divām ciparu argumentu vērtībām.

$bashkey3.sh35 piecpadsmit

Izeja:

4. piemērs:

Izveidojiet bash failu ar šādu skriptu. Skripts tiks pārtraukts, kad lietotājs nospiedīs ESC taustiņu. Šis skripts drukās lietotāja nospiestos taustiņus, līdz tiek nospiests taustiņš ESC.

#!/bin/bash
lietotāja ievade=''
izmest ārā 'Nospiediet taustiņu ESC, lai izietu'
#lasiet vienu rakstzīmi
kamēr lasīt -r -n1taustiņu
darīt
# ja ievade == ESC taustiņš
ja [[ $ atslēga== $'Un' ]];
tad
pārtraukums;
būt
# Pievienojiet atslēgu mainīgajam, kuru nospiež lietotājs.
lietotāja ievade+=$ atslēga
darīts
printf ' nJūs esat ierakstījis:$ userinput n'

Palaidiet skriptu.

$bashkey4.sh

Izeja:

5. piemērs:

Izveidojiet bash failu ar šādu kodu, kas gaidīs, līdz ENTER taustiņš pārtrauks skriptu. Skripts kā ievadi ņems servera nosaukumu un ik pēc 2 sekundēm mēģinās pingēt serveri. Ja ping komanda saņem atbildi no servera, tā pārtrauc skriptu, parādot izvadi, pretējā gadījumā tā gaidīs lietotāja atbildi vai ievadīšanas taustiņu, izdrukājot ziņojumu, mēģinot izveidot savienojumu ar….

#!/bin/bash
izmest ārā 'Ievadiet servera adresi, kuru vēlaties pingēt'
lasītserveris
kamēr ! ping -c 1 -n -IN 2 $ serveris
darīt
izmest ārā 'Mēģinu izveidot savienojumu ar$ serveris'
izmest ārā 'Nospiediet [ENTER], lai pārtrauktu'
lasīt -s -N 1 -t 1taustiņu
ja [[ $ atslēga== $' x0a' ]];# ja ievade == ENTER taustiņš
tad
Izeja 0
būt
darīts
printf '%s n' '$ serverisskrien'

Palaidiet skriptu.

$bashkey5.sh

Izeja:

Secinājums:

Šī apmācība parāda, kā jūs varat rakstīt bash skriptu dažādos veidos, kas gaidīs, kad lietotāja ievade veiks kādu konkrētu uzdevumu vai pārtrauks skriptu. Ceru, ka, praktizējot iepriekš minētos piemērus, jūs varēsit rakstīt skriptu tā, lai varētu gaidīt jebkuru taustiņa nospiešanu un veikt konkrēto uzdevumu, pamatojoties uz lietotāja nospiesto taustiņu.