1. példa:
Hozzon létre egy bash fájlt a következő szkripttel. Amikor futtatja a szkriptet, addig folytatódik, amíg a felhasználó le nem nyom egy gombot. A szkript 3 másodpercenként megvárja a felhasználó bevitelét, és ha a felhasználó nem nyom meg egyetlen gombot sem, akkor kinyomtatja az üzenetet, várja a gombnyomást .
#!/bin/bash
kidobta 'Nyomjon meg egy gombot a folytatáshoz'
míg [ igaz ];tedd
olvas -t 3 -n 1
ha [ $?=0 ];azután
kijárat;
más
kidobta 'várja a billentyű lenyomását'
lenni
Kész
Futtassa a szkriptet.
$bashkey1.sh
Kimenet:
2. példa:
Hozzon létre egy bash fájlt a következő szkripttel. Ebben a példában egy végtelen ciklus használatos, amely akkor fejeződik be, amikor a felhasználó megnyomja a „q” gombot. Ha a felhasználó bármelyik gombot megnyomja „q” nélkül, akkor a számlálóváltozó értéke 1 -gyel nő, és kinyomtatja az értéket.
#!/bin/bashkidobta 'Kilépéshez nyomja meg a' q 'gombot
számol=0
míg:;tedd
olvas -n 1nak nek<&1
ha [[ $ k= q]];azután
printf ' nKilépés a programból n'
szünet
más
((számol=$ gróf+1))
printf ' nIsmételje meg$ grófalkalommal n'
kidobta 'Kilépéshez nyomja meg a' q 'gombot
lenni
Kész
Futtassa a szkriptet.
$bashkey2.sh
Kimenet:
3. példa:
Hozzon létre egy bash fájlt a következő parancsfájllal, amely különböző típusú feladatokat hajt végre a felhasználó által megnyomott billentyű alapján. Ha a felhasználó megnyomja az „1” gombot, akkor két parancssori argumentumot ad hozzá, és nyomtat. Ha a felhasználó megnyomja a „2” gombot, akkor kivon két parancssori argumentumot, és kinyomtatja. A szkript folyamatosan fut, amíg a felhasználó le nem nyomja a „3” gombot.
#!/bin/bashv1=$ 1
v2=2 USD
míg:
tedd
kidobta „1. Kiegészítés'
kidobta „2. Kivonás'
kidobta „3. Kilépés'
kidobta -n '1. vagy 2. vagy 3. típus:'
olvas -n 1 -t tizenötnak nek
printf ' n'
ügy $ a ban ben
1* ) kidobta '$ v1+$ v2=$ (($ v1+$ v2)) '';;
2* ) kidobta '$ v1-$ v2=$ (($ v1- $ v2)) '';;
3* ) kijárat 0;;
* ) kidobta 'Próbáld újra.';;
esac
Kész
Futtassa a szkriptet két numerikus argumentumértékkel.
$bashkey3.sh35 tizenötKimenet:
4. példa:
Hozzon létre egy bash fájlt a következő szkripttel. A szkript akkor fejeződik be, amikor a felhasználó megnyomja az ESC billentyűt. Ez a szkript addig nyomtatja a felhasználó által megnyomott billentyűket, amíg az ESC gombot le nem nyomja.
#!/bin/bashuserinput=''
kidobta 'Kilépéshez nyomja meg az ESC gombot'
# egyetlen karakter olvasása
míg olvas -r -n1kulcs
tedd
# ha bemenet == ESC billentyű
ha [[ $ kulcs== $'És' ]];
azután
szünet;
lenni
# Adja hozzá a kulcsot a felhasználó által megnyomott változóhoz.
userinput+=$ kulcs
Kész
printf ' nBeírtad:$ userinput n'
Futtassa a szkriptet.
$bashkey4.shKimenet:
5. példa:
Hozzon létre egy bash fájlt a következő kóddal, amely megvárja az ENTER billentyűt a szkript leállításához. A szkript a kiszolgáló nevét veszi fel bemenetként, és 2 másodpercenként megpróbálja pingelni a kiszolgálót. Ha a ping parancs megkapja a választ a szervertől, akkor a kimenet megjelenítésével leállítja a szkriptet, különben megvárja a felhasználó válaszát vagy az ENTER billentyűt az üzenet kinyomtatásával.
#!/bin/bashkidobta 'Írja be a pingelni kívánt szerver címét'
olvasszerver
míg ! ping -c 1 -n -BAN BEN 2 $ szerver
tedd
kidobta 'Próbálok csatlakozni$ szerver'
kidobta 'Nyomja meg az [ENTER] gombot a befejezéshez '
olvas -s -N 1 -t 1kulcs
ha [[ $ kulcs== $' x0a' ]];# ha bemenet == ENTER billentyű
azután
kijárat 0
lenni
Kész
printf '%s n' '$ szerverfut'
Futtassa a szkriptet.
$bashkey5.shKimenet:
Következtetés:
Ez az oktatóanyag bemutatja, hogyan írhatja le a bash szkriptet különböző módokon, amelyek megvárják, amíg a felhasználó beírása elvégzi a kívánt feladatot, vagy leállítja a szkriptet. Reméljük, a fenti példák gyakorlása után képes lesz arra, hogy megírja a szkriptet úgy, hogy megvárja a gombnyomást, és elvégezze az adott feladatot a felhasználó által megnyomott billentyű alapján.