Olvassa el a Parancs: Hogyan ellenőrizhetjük, hogy a felhasználó beírt-e valamit

Próbálok létrehozni egy if else utasítást annak igazolására, hogy a felhasználó valamit beírt-e. végig kell futnia a parancsokon, és ha nem, akkor szeretnék visszhangozni egy súgó utasítást.

Megjegyzések

  • read, általában a felhasználónak el kell ütnie az Enter -t, mielőtt a szkript előrehaladna; ezután tesztelheti a bemenetet …

Válasz

Egy példa (meglehetősen egyszerű) a következő. Létrejön egy felhasználói bemenet nevű fájl, amely a következő kódot tartalmazza.

#!/bin/bash # create a variable to hold the input read -p "Please enter something: " userInput # Check if string is empty using -z. For more "help test" if [[ -z "$userInput" ]]; then printf "%s\n" "No input entered" exit 1 else # If userInput is not empty show what the user typed in and run ls -l printf "You entered %s " "$userInput" ls -l fi 

A bash tanulásának megkezdéséhez javasoljuk, hogy ellenőrizze a következő linket: http://mywiki.wooledge.org/

Válasz

Ha tudni szeretné, hogy a felhasználó megadott-e egy adott karakterláncot, ez segíthet: id = “56db1e5e6e”>

Válasz

Ha több választás is érvényes, állítson be egy darab feltételt, hogy megfeleljen a reguláris kifejezésnek :

Például:

#!/bin/bash while ! [[ "$image" =~ ^(rhel74|rhel75|cirros35)$ ]] do echo "Which image do you want to use: rhel74 / rhel75 / cirros35 ?" read -r image done 

Addig kéri a bevitelt, amíg meg nem adja a három lehetőség egyikét.

Megjegyzések

  • Jobb lenne egy select utasítást használni a bash fájlban, ha a kérdés a következőkre korlátozódott: lehetőségek.
  • @Kusalananda, ahelyett, hogy -1-et adna, mondjon tényleges példát! Javaslatom jól működik. Mutassa meg, hogy a javaslata is jó. Don ' csak -1 értéket adjon meg, mert megteheti – ez ' valóban nem segít más olvasók számára.
  • Itt ' s egy példa: select image in rhel74 rhel75 cirros35; do [ -n "$image" ] && break; done
  • @Kusalananda most ez nagyon hasznos, köszönöm! Ha a $ image már be van állítva, akkor hozzá kellett volna adnom a [ -z "$image" ] && select ... -t is, hogy kihagyjam a teljes választást.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük