Continuamos con el curso de box de dialogo, en este capitulo veremos la introdución de datos de texto así como de un password.
Que vemos en este script sh?.
- Un cuadro menu de entrada: Útil cuando quieres realizar preguntas que requieren que el usuario introduzca un dato, por ejemplo una respuesta desde el teclado.
- Puedes corregir con la tecla de retroceso, la de suprimir y las del cursor para corregir errores de escritura.
- Si el dato de entrada es más largo que el box se encajara automáticamente en el cuadro de diálogo.
- La cadena de entrada se imprimirá en la salida del diálogo. Se puede ser redirigir a un archivo de texto .
Ejemplo:
#!/bin/bash # hola.sh - Inputbox shell script OUTPUT="/tmp/input.txt" # create empty file >$OUTPUT # Purpose - say hello to user # $1 -> name (set default to 'anonymous person') function sayhello(){ local n=${@-"anonymous person"} #display it dialog --title "Hola" --clear --msgbox "Hola ${n}, bienvenido!" 10 41 } # cleanup - add a trap that will remove $OUTPUT # if any of the signals - SIGHUP SIGINT SIGTERM it received. trap "rm $OUTPUT; exit" SIGHUP SIGINT SIGTERM # show an inputbox dialog --title "Inputbox - To take input from you" \ --backtitle "Linux script ejemplo - sololinux.es" \ --inputbox "Enter your name " 8 60 2>$OUTPUT # get respose respose=$? # get data stored in $OUPUT using input redirection name=$(<$OUTPUT) # make a decsion case $respose in 0) sayhello ${name} ;; 1) echo "Cancel pressed." ;; 255) echo "[ESC] key pressed." esac # remove $OUTPUT file rm $OUTPUT
Ejemplos de salidas impresas:
Todo correcto, continuamos con el password.
Ejemplo de introducción de un password:
#!/bin/bash # mipass.sh Sample Script to read users password. # password storage data=$(tempfile 2>/dev/null) # trap it trap "rm -f $data" 0 1 2 5 15 # get password dialog --title "Password" \ --clear \ --passwordbox "Introduzca su password" 10 30 2> $data ret=$? # make decision case $ret in 0) echo "Password is $(cat $data)";; 1) echo "Cancelar.";; 255) [ -s $data ] && cat $data || echo "ESC pressed.";; esac Save and close the file. Run it as follows: chmod +x mipass.sh ./mipass.sh
Guardar, conceder permisos y ejecutar, como:
chmod +x mipass.sh
Ejecutar:
./mipass.sh ### O bien... bash mipass.sh
Recuerda que esta opción es para contraseñas seguras, si deseas no tener ningún problema pero con pass menos segura sera de la siguiente forma…
Password no segura (recomendable).
- La opción –insecure hace widget de contraseña es más amigable pero menos segura.
- Crearemos un script shell llamado mipass.sh.
#!/bin/bash # mipass2.sh - Sample script to users password. # password storage data=$(tempfile 2>/dev/null) # trap it trap "rm -f $data" 0 1 2 5 15 # get password with the --insecure option dialog --title "Password" \ --clear \ --insecure \ --passwordbox "Enter your password" 10 30 2> $data ret=$? # make decison case $ret in 0) echo "Password is $(cat $data)";; 1) echo "Cancel pressed.";; 255) [ -s $data ] && cat $data || echo "ESC pressed.";; esac
Ejemplo de salida:
Continuaremos en próximo articulo.
Buenas noches Sergio, te comento que estoy siguiendo tus pasos para lo relacionado a «crear menus y dialogos con scripts bash».
He podido ver desde el artículo 1 al 6, pero en el 6 no encuentro el link para al paso o artículo 7 de 8.
Llegué hasta acá:
https://www.sololinux.es/crear-menus-y-dialogos-con-scripts-bash-6-8-dialog-dialogos-de-entrada-y-password/
Espero me puedas señalar las otras 2 url para ver los 2 tutoriales restantes.
Muchas gracias por la enseñanza.