Exempel#1:
Skapa en bash -fil med följande skript. När du kör scriptet fortsätter det tills användaren trycker på valfri knapp. Skriptet väntar på användarens inmatning var tredje sekund och om användaren inte trycker på någon knapp kommer det att skriva ut meddelandet, väntar på knapptryckningen .
#!/bin/bash
kastade ut 'Tryck på valfri tangent för att fortsätta'
medan [ Sann ];do
läsa -t 3 -n 1
om [ $?=0 ];sedan
utgång;
annan
kastade ut 'väntar på knapptryckningen'
vara
Gjort
Kör skriptet.
$våldsamt slagkey1.sh
Produktion:
Exempel 2:
Skapa en bash -fil med följande skript. En oändlig medan loop används i detta exempel som avslutas när användaren trycker på 'q'. Om användaren trycker på någon knapp utan ”q” kommer värdet på räknarvariabeln att ökas med 1 och skriva ut värdet.
#!/bin/bashkastade ut 'Tryck på' q 'för att avsluta'
räkna=0
medan:;do
läsa -n 1till<&1
om [[ $ k= q]];sedan
printf ' nAvsluta från programmet n'
ha sönder
annan
((räkna=$ räkna+1))
printf ' nIterera för$ räknagånger n'
kastade ut 'Tryck på' q 'för att avsluta'
vara
Gjort
Kör skriptet.
$våldsamt slagkey2.sh
Produktion:
Exempel 3:
Skapa en bash -fil med följande skript som kommer att utföra olika typer av uppgifter baserat på knappen som användaren trycker på. Om användaren trycker på '1' kommer den att lägga till två kommandoradsargument och skriva ut. Om användaren trycker på ‘2’ kommer den att subtrahera två kommandoradsargument och skriva ut. Skriptet körs kontinuerligt tills användaren trycker på '3'.
#!/bin/bashv1=$ 1
v2=$ 2
medan:
do
kastade ut '1. Tillägg'
kastade ut '2. Subtraktion'
kastade ut '3. Sluta med'
kastade ut -n 'Typ 1 eller 2 eller 3:'
läsa -n 1 -t femtontill
printf ' n'
fall $ a i
1* ) kastade ut '$ v1+$ v2=$ (($ v1+$ v2)) ';;
2* ) kastade ut '$ v1-$ v2=$ (($ v1- $ v2)) ';;
3* ) utgång 0;;
* ) kastade ut 'Försök igen.';;
esac
Gjort
Kör skriptet med två numeriska argumentvärden.
$våldsamt slagkey3.sh35 femtonProduktion:
Exempel#4:
Skapa en bash -fil med följande skript. Skriptet avslutas när användaren trycker på ESC -tangenten. Detta skript kommer att skriva ut knapparna som trycks av användaren tills ESC -tangenten trycks ned.
#!/bin/bashanvändarinmatning=''
kastade ut 'Tryck på ESC -knappen för att avsluta'
# läs ett enda tecken
medan läsa -r -n1nyckel-
do
# if input == ESC -nyckel
om [[ $ nyckel== $'Och' ]];
sedan
ha sönder;
vara
# Lägg till nyckeln till variabeln som trycks av användaren.
userinput+=$ nyckel
Gjort
printf ' nDu har skrivit:$ userinput n'
Kör skriptet.
$våldsamt slagkey4.shProduktion:
Exempel#5:
Skapa en bash -fil med följande kod som väntar på att ENTER -tangenten avslutar skriptet. Skriptet tar ett servernamn som input och försöker pinga servern varannan sekund. Om ping -kommandot får svaret från servern kommer det att avsluta skriptet genom att visa utmatningen annars väntar det på användarens svar eller ENTER -tangenten genom att skriva ut meddelandet, försöker ansluta med ....
#!/bin/bashkastade ut 'Ange serveradressen som du vill pinga'
läsaserver
medan ! ping -c 1 -n -I 2 $ server
do
kastade ut 'Försöker ansluta till$ server'
kastade ut 'Tryck på [ENTER] för att avsluta'
läsa -s -N 1 -t 1nyckel-
om [[ $ nyckel== $' x0a' ]];# if input == ENTER -tangent
sedan
utgång 0
vara
Gjort
printf '%s n' '$ serverär igång'
Kör skriptet.
$våldsamt slagkey5.shProduktion:
Slutsats:
Denna handledning visar hur du kan skriva bash -skriptet på olika sätt som väntar på att användarens inmatning ska utföra någon specifik uppgift eller avsluta skriptet. Hoppas, efter att ha övat på ovanstående exempel kommer du att kunna skriva manuset på ett sådant sätt att du kan vänta på varje knapptryckning och utföra den specifika uppgiften baserat på knappen som användaren trycker på.