Príklad č. 1:
Vytvorte súbor bash pomocou nasledujúceho skriptu. Keď spustíte skript, bude pokračovať, kým používateľ nestlačí ľubovoľný kláves. Skript bude čakať na zadanie používateľa každé 3 sekundy a ak používateľ nestlačí žiadne tlačidlo, správu vytlačí, čakanie na stlačenie klávesu .
#!/bin/bash
zahodil 'Pre pokračovanie stlačte ľubovolnú klávesu'
kým [ pravda ];urobiť
čítať -t 3 -n 1
keby [ $?=0 ];potom
východ;
inak
zahodil „čakanie na stlačenie klávesu“
byť
hotový
Spustite skript.
$bashkey1.sh
Výkon:
Príklad č. 2:
Vytvorte súbor bash pomocou nasledujúceho skriptu. V tomto prípade sa používa nekonečná slučka, ktorá sa skončí, keď používateľ stlačí „q“. Ak používateľ stlačí akékoľvek tlačidlo bez „q“, hodnota premennej počítadla sa zvýši o 1 a hodnotu vytlačí.
#!/bin/bashzahodil 'Ukončite' stlačením 'q'
počítať=0
kým:;urobiť
čítať -n 1k<&1
keby [[ $ k= q]];potom
printf ' nUkončenie programu n'
prestávka
inak
((počítať=počet dolárov+1))
printf ' nIterovať prepočet dolárovkrát n'
zahodil 'Ukončite' stlačením 'q'
byť
hotový
Spustite skript.
$bashkey2.sh
Výkon:
Príklad č. 3:
Vytvorte súbor bash s nasledujúcim skriptom, ktorý bude vykonávať rôzne typy úloh na základe stlačenia klávesu používateľom. Ak používateľ stlačí „1“, pridá dva argumenty príkazového riadka a vytlačí. Ak používateľ stlačí „2“, odpočíta dva argumenty príkazového riadka a vytlačí. Skript bude bežať nepretržite, kým používateľ nestlačí „3“.
#!/bin/bashv1=1 dolár
v2=2 doláre
kým:
urobiť
zahodil „1. Dodatok '
zahodil „2. Odčítanie '
zahodil „3. Skončiť '
zahodil -n „Typ 1 alebo 2 alebo 3:“
čítať -n 1 -t pätnásťdo
printf ' n'
prípad $ a v
1* ) zahodil '$ v1+$ v2=$ (($ v1+$ v2)) ';;
2* ) zahodil '$ v1-$ v2=$ (($ v1-$ v2)) ';;
3* ) východ 0;;
* ) zahodil „Skúste to znova.“;;
esac
hotový
Spustite skript s dvoma hodnotami číselných argumentov.
$bashkey3.sh35 pätnásťVýkon:
Príklad č. 4:
Vytvorte súbor bash pomocou nasledujúceho skriptu. Skript sa ukončí, keď používateľ stlačí kláves ESC. Tento skript bude tlačiť klávesy stlačené užívateľom, kým nestlačíte kláves ESC.
#!/bin/bashužívateľský vstup=''
zahodil „Ukončite stlačením klávesu ESC“
# prečítajte jeden znak
kým čítať -r -n1kľúč
urobiť
# if input == ESC kľúč
keby [[ $ kľúč== $'' ]];
potom
prestávka;
byť
# Pridajte kľúč do premennej, ktorú stlačí používateľ.
užívateľský vstup+=$ kľúč
hotový
printf ' nZadali ste:$ užívateľský vstup n'
Spustite skript.
$bashkey4.shVýkon:
Príklad č. 5:
Vytvorte súbor bash s nasledujúcim kódom, ktorý bude čakať na ukončenie skriptu klávesom ENTER. Skript prevezme ako vstupný názov servera a pokúsi sa vykonať ping na server každé 2 sekundy. Ak príkaz ping dostane odpoveď zo servera, skript ukončí zobrazením výstupu, v opačnom prípade bude čakať na odpoveď používateľa alebo na kláves ENTER pre tlač správy, Pokúša sa spojiť s ...
#!/bin/bashzahodil „Zadajte adresu servera, na ktorý chcete odoslať príkaz ping“
čítaťserver
kým ! ping -c 1 -n -V 2 $ server
urobiť
zahodil „Pokúša sa spojiť s$ server'
zahodil „Ukončite stlačením [ENTER]
čítať -s -N 1 -t 1kľúč
keby [[ $ kľúč== $' x0a' ]];# if input == kláves ENTER
potom
východ 0
byť
hotový
printf '%s n' '$ serverbeží'
Spustite skript.
$bashkey5.shVýkon:
Záver:
Tento tutoriál ukazuje, ako môžete napísať bash skript rôznymi spôsobmi, ktoré počkajú, kým používateľ zadá akúkoľvek konkrétnu úlohu alebo skript ukončí. Dúfam, že po precvičení vyššie uvedených príkladov budete schopní napísať skript tak, aby počkal na akékoľvek stlačenie klávesu a vykonal konkrétnu úlohu na základe klávesu, ktorý stlačil používateľ.