Příklad č. 1:
Vytvořte soubor bash s následujícím skriptem. Když skript spustíte, bude pokračovat, dokud uživatel nestiskne libovolnou klávesu. Skript bude čekat na zadání uživatele každé 3 sekundy a pokud uživatel nestiskne žádnou klávesu, vytiskne zprávu, čekání na stisknutí klávesy .
#!/bin/bash
vyhodil 'Pokračujte stiskem libovolné klávesy'
zatímco [ skutečný ];dělat
číst -t 3 -n 1
-li [ $?=0 ];pak
výstup;
jiný
vyhodil 'čekání na stisknutí klávesy'
být
Hotovo
Spusťte skript.
$bashkey1.sh
Výstup:
Příklad č. 2:
Vytvořte soubor bash s následujícím skriptem. V tomto příkladu je použita nekonečná smyčka while, která skončí, když uživatel stiskne ‘q’. Pokud uživatel stiskne jakoukoli klávesu bez „q“, hodnota proměnné čítače se zvýší o 1 a hodnotu vytiskne.
#!/bin/bashvyhodil 'Ukončete stisknutím' q '
počet=0
zatímco:;dělat
číst -n 1k<&1
-li [[ $k= q]];pak
printf ' nUkončení programu n'
přestávka
jiný
((počet=počet $+1))
printf ' nOpakujte propočet $krát n'
vyhodil 'Ukončete stisknutím' q '
být
Hotovo
Spusťte skript.
$bashkey2.sh
Výstup:
Příklad č. 3:
Vytvořte soubor bash s následujícím skriptem, který bude provádět různé typy úkolů na základě klávesy stisknuté uživatelem. Pokud uživatel stiskne „1“, přidá dva argumenty příkazového řádku a vytiskne. Pokud uživatel stiskne „2“, odečte dva argumenty příkazového řádku a vytiskne. Skript poběží nepřetržitě, dokud uživatel nestiskne „3“.
#!/bin/bashv1=1 $
v2=2 $
zatímco:
dělat
vyhodil „1. Přidání'
vyhodil „2. Odčítání'
vyhodil '3. Přestat'
vyhodil -n „Typ 1 nebo 2 nebo 3:“
číst -n 1 -t patnáctna
printf ' n'
případ $ a v
1* ) vyhodil '$ v1+$ v2=$ (($ v1+$ v2)) ';;
2* ) vyhodil '$ v1-$ v2=$ (($ v1-$ v2)) ';;
3* ) výstup 0;;
* ) vyhodil 'Zkus to znovu.';;
esac
Hotovo
Spusťte skript se dvěma hodnotami číselných argumentů.
$bashkey3.sh35 patnáctVýstup:
Příklad č. 4:
Vytvořte soubor bash s následujícím skriptem. Skript se ukončí, když uživatel stiskne klávesu ESC. Tento skript vytiskne klávesy stisknuté uživatelem, dokud není stisknuta klávesa ESC.
#!/bin/bashuživatelský vstup=''
vyhodil 'Ukončete stisknutím klávesy ESC'
# přečtěte jeden znak
zatímco číst -r -n1klíč
dělat
# if input == ESC klíč
-li [[ $ klíč== $'A' ]];
pak
přestávka;
být
# Přidejte klíč do proměnné, kterou uživatel stiskne.
userinput+=$ klíč
Hotovo
printf ' nZadali jste:$ userinput n'
Spusťte skript.
$bashkey4.shVýstup:
Příklad č. 5:
Vytvořte soubor bash s následujícím kódem, který čeká na ukončení skriptu klávesou ENTER. Skript převezme jako vstup název serveru a pokusí se provést ping na server každé 2 sekundy. Pokud příkaz ping získá odpověď ze serveru, ukončí skript zobrazením výstupu, jinak bude čekat na odpověď uživatele nebo klávesu ENTER vytištěním zprávy, Pokouší se připojit s ....
#!/bin/bashvyhodil 'Zadejte adresu serveru, na který chcete odeslat příkaz ping'
čístserver
zatímco ! ping -C 1 -n -V 2 $ server
dělat
vyhodil 'Pokouším se spojit s.'$ server'
vyhodil „Ukončete stisknutím [ENTER]
číst -s -N 1 -t 1klíč
-li [[ $ klíč== $' x0a' ]];# if input == klávesa ENTER
pak
výstup 0
být
Hotovo
printf '%s n' '$ serverběží'
Spusťte skript.
$bashkey5.shVýstup:
Závěr:
Tento tutoriál ukazuje, jak můžete psát bash skript různými způsoby, které budou čekat na zadání uživatele, aby provedl jakýkoli konkrétní úkol nebo skript ukončil. Doufám, že po procvičení výše uvedených příkladů budete schopni napsat skript takovým způsobem, aby mohl počkat na jakékoli stisknutí klávesy a provést konkrétní úkol na základě klávesy stisknuté uživatelem.