SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/bin/bash | |
| 2 | - | # bucleWhileBash01.sh |
| 2 | + | # bucleWhileBash02.sh |
| 3 | # Autor: angeldp | |
| 4 | # Ejemplo de un bucle sencillo del que no se saldrá mientras | |
| 5 | - | # que la variable PASS no sea 1234 |
| 5 | + | # que la variable PASS no sea 1234. En este caso se controlará |
| 6 | - | # Defino la variable PASS como 0 |
| 6 | + | # el número de intentos; y si se introduce una contraseña |
| 7 | # errónea tres veces, el bucle finalizará indicándolo. | |
| 8 | - | # Creo el bucle (mientras la contraseña sea distinta de 1234...) |
| 8 | + | # Inicializo las variables CONT y PASS como 0 |
| 9 | - | while [ "$PASS" != "1234" ] |
| 9 | + | |
| 10 | CONT=0 | |
| 11 | # Creo el bucle (mientras la contraseña sea distinta de 1234 | |
| 12 | # Y el número de intentos sea inferior a tres...) | |
| 13 | while [ "$PASS" != "1234" -a $CONT -lt 3 ] | |
| 14 | do | |
| 15 | clear | |
| 16 | read -s -p "Introduzca su contraseña de acceso: " PASS | |
| 17 | # Actualizo el contador de intentos (CONT) sumándole 1: | |
| 18 | CONT=`expr $CONT + 1` | |
| 19 | done | |
| 20 | # Al salir del bucle no podemos saber si ha finalizado porque | |
| 21 | # ha introducido la contraseña correcta o porque ha llegado al | |
| 22 | # número máximo de intentos permitidos. Deberemos comprobarlo: | |
| 23 | # Si la contraseña no es la correcta... | |
| 24 | if [ $PASS != "1234" ] | |
| 25 | then | |
| 26 | echo -e "\n\nHa introducido tres veces una contraseña incorrecta.\nAdios." | |
| 27 | exit | |
| 28 | fi | |
| 29 | echo –e “\n\n¡Acertaste!\n\n” |