Bash odottaa näppäimen painallusta

Bash Wait Keypress



'read' -komentoa käytetään käyttäjän syöttämiseen bash -komentosarjassa. Voimme syöttää bash -skriptiin käyttämällä lukuisia vaihtoehtoja lukukomennolla. Joskus meidän on kirjoitettava komentosarja siten, että komentosarja suoritetaan, kunnes tiettyä näppäintä painetaan tai tietty komentosarja suoritetaan tietyn avaimen perusteella tai ohjelma odottaa tietyn ajan, kunnes mitä tahansa näppäintä painetaan. Tässä opetusohjelmassa näytetään, kuinka voit kirjoittaa bash -komentosarjan odottamaan tiettyä avainta tai avainta joihinkin tehtäviin käyttämällä erilaisia ​​esimerkkejä.

Esimerkki 1:

Luo bash -tiedosto seuraavalla komentosarjalla. Kun suoritat komentosarjan, se jatkuu, kunnes käyttäjä painaa mitä tahansa näppäintä. Käsikirjoitus odottaa käyttäjän tuloa kolmen sekunnin välein ja jos käyttäjä ei paina mitään näppäintä, se tulostaa viestin, näppäimen painallusta odotellessa .







#!/bin/bash
heitti pois 'Paina mitä tahansa näppäintä jatkaaksesi'
sillä aikaa [ totta ];tehdä
lukea -t 3 -n 1
jos [ $?=0 ];sitten
poistua;
muu
heitti pois 'odotan näppäimen painallusta'
olla
tehty

Suorita komentosarja.



$lyödäkey1.sh

Lähtö:







Esimerkki#2:

Luo bash -tiedosto seuraavalla komentosarjalla. Tässä esimerkissä käytetään ääretöntä silmukkaa, joka päättyy, kun käyttäjä painaa ”q”. Jos käyttäjä painaa mitä tahansa näppäintä ilman 'q', laskurimuuttujan arvoa suurennetaan yhdellä ja tulostetaan arvo.

#!/bin/bash
heitti pois 'Poistu painamalla' q '
Kreivi=0
sillä aikaa:;tehdä
lukea -n 1kohteeseen<&1
jos [[ $ k= q]];sitten
printf '' nOhjelmasta lopettaminen n''
tauko
muu
((Kreivi=$ määrä+1))
printf '' nToista puolesta$ määräajat n''
heitti pois 'Poistu painamalla' q '
olla
tehty

Suorita komentosarja.



$lyödäkey2.sh

Lähtö:

Esimerkki#3:

Luo bash -tiedosto seuraavalla komentosarjalla, joka suorittaa erityyppisiä tehtäviä käyttäjän painaman näppäimen perusteella. Jos käyttäjä painaa ”1”, se lisää kaksi komentoriviargumenttia ja tulostaa. Jos käyttäjä painaa ”2”, se vähentää kaksi komentoriviargumenttia ja tulostaa. Skripti suoritetaan jatkuvasti, kunnes käyttäjä painaa '3'.

#!/bin/bash
v1=$ 1
v2=2 dollaria
sillä aikaa:
tehdä
heitti pois '' 1. Lisäys'
heitti pois '2. Vähennyslasku'
heitti pois '3. Lopettaa'
heitti pois -n '' Tyyppi 1 tai 2 tai 3: ''
lukea -n 1 -t viisitoistakohteeseen
printf '' n''
tapaus $ a sisään
1* ) heitti pois ''$ v1+$ v2=$ (($ v1+$ v2)) '';;

2* ) heitti pois ''$ v1-$ v2=$ (($ v1- $ v2)) '';;

3* ) poistua 0;;


* ) heitti pois 'Yritä uudelleen.';;
esac
tehty

Suorita komentosarja kahdella numeerisella argumenttiarvolla.

$lyödäkey3.sh35 viisitoista

Lähtö:

Esimerkki#4:

Luo bash -tiedosto seuraavalla komentosarjalla. Ohjelma päättyy, kun käyttäjä painaa ESC -näppäintä. Tämä skripti tulostaa käyttäjän painamia näppäimiä, kunnes ESC -näppäintä painetaan.

#!/bin/bash
käyttäjän syöttö=''
heitti pois 'Lopeta painamalla ESC -näppäintä'
# lue yksi merkki
sillä aikaa lukea -r -n1näppäintä
tehdä
# jos syöte == ESC -näppäin
jos [[ $ -avain== $'Ja' ]];
sitten
tauko;
olla
# Lisää avain käyttäjän painamaan muuttujaan.
käyttäjän syöttö+=$ -avain
tehty
printf '' nOlet kirjoittanut:$ userinput n''

Suorita komentosarja.

$lyödäkey4.sh

Lähtö:

Esimerkki#5:

Luo bash -tiedosto seuraavalla koodilla, joka odottaa ENTER -näppäimen lopettavan komentosarjan. Skripti käyttää syötteenä palvelimen nimeä ja yrittää pingata palvelinta kahden sekunnin välein. Jos ping -komento saa vastauksen palvelimelta, se lopettaa komentosarjan näyttämällä tuloksen, muuten se odottaa käyttäjän vastausta tai ENTER -näppäintä tulostamalla viestin, Yritetään muodostaa yhteys….

#!/bin/bash
heitti pois 'Anna palvelimen osoite, johon haluat pingittää'
lukeapalvelin
sillä aikaa ! ping -c 1 -n -SISÄÄN 2 $ palvelin
tehdä
heitti pois 'Yritetään muodostaa yhteys$ palvelin''
heitti pois 'Lopeta painamalla [ENTER]'
lukea -s -N 1 -t 1näppäintä
jos [[ $ -avain== $' x0a' ]];# jos syöte == ENTER -näppäin
sitten
poistua 0
olla
tehty
printf '%s n'' ''$ palvelinjuoksee'

Suorita komentosarja.

$lyödäkey5.sh

Lähtö:

Johtopäätös:

Tämä opetusohjelma näyttää, kuinka voit kirjoittaa bash -komentosarjan eri tavoilla, jotka odottavat käyttäjän tuloa suorittamaan tietyn tehtävän tai lopettaa komentosarjan. Toivottavasti yllä olevien esimerkkien harjoittamisen jälkeen pystyt kirjoittamaan komentosarjan siten, että voit odottaa mitä tahansa näppäimen painallusta ja suorittaa tietyn tehtävän käyttäjän painaman näppäimen perusteella.