Dialog és una ordre de GNU / Linux que permet crear quadres de diàleg en el terminal perquè els utilitzis en les teves scripts de programació, vaig a mostrar com utilitzar aquesta comanda.
Per a la realització d'aquest article m'he basadoen el manual de la comanda i en les següents pàgines webs donar-los els meus més sincers agraïments als creadors.
http://ovtoaster.com/scripts-en-linux-con-estilo/
http://linuxgazette.net/101/sunil.html
Els colors en aplicacions i sistemes
Textos escrit en la línia d'ordres: blau
Sortida del en la línia d'ordres: verd
Noms d'arxius i contingut d'arxiu: marrons
Instal·lació de dialog
Per poder utilitzar aquesta eina en linux el primer que has de fer és instal·lar-la
Ubuntu
sudo apt-get diàleg d'instal·lació
Debian
apt-get diàleg d'instal·lació
Barret vermell
yum install de diàleg
Suse
Zypper diàleg d'instal·lació
sintaxi
Per caixes amb sols una opció.
tant <ample-de-caixa> <alt-de-caixa> es representa amb valors numèrics si posem 0 s'ajusten al contingut.
diàleg <opcions-comuns> <opcions de caixa> <ample-de-caixa> <alt-de-caixa>
Exemple:
--title de diàleg "Títol" --yesno "T'agrada el color vermell?" 0 0
Per caixes amb múltiples opcions
És només és per a les caixes de tipus checklist, menú o radiolist. si posem 0 en <nombre-de-opcions-visibles> s'ajusta automàticament al nº d'opcions.
diàleg <opcions-comuns> <opcions de caixa> <ample-de-caixa> <alt-de-caixa> <nombre-de-opcions-visibles>.
Exemple:
--checklist de diàleg "Escull les opcions que desitgis:" 0 0 0 1 formatge on 2 "mostassa" en 3 anxoves off
opcions comuns
Són opcions que són presents a la majoria dels tipus de quadres de diàleg “diàleg” les mes comunes són les següents:
títols
–títol
S'utilitza per posar-li títol al quadre de diàleg.
–backtitle
És el títol del fons de la finestra.
Canviar text botons
–sí etiqueta
Canvia la paraula YES dels quadres de diàleg per la que tu vulguis.
–D'acord–etiqueta
Canvia la paraula OK dels quadres de diàleg per la que tu vulguis.
–cancel·lar l'etiqueta
Canvia la paraula CANCEL dels quadres de diàleg per la que tu vulguis.
–la sortida d'etiqueta
Canvia la paraula EXIT dels quadres de diàleg per la que tu vulguis.
–de no etiquetat
Canvia la paraula NO dels quadres de diàleg per la que tu vulguis.
–racó
Treu el botó d'OK del quadre de diàleg cal prémer enter per entrar.
Sortida de la comanda
Aquestes variables permeten decidir per on sortiran les opcions escollides en la comanda per defecte sortiran per la sortida d'error si volem podem treure-ho a pantalla.
–stderr
Sortida de la comanda a la sortida d'error si escollim aquesta opció podem treure el resultat a un arxiu afegint al final de la línia de dialog:
2><arxiu on guardar la sortida>
–stdout
Amb aquesta opció ens mostra en pantalla la sortida de l'ordre jo la faig servir quan vull emmagatzemar en una variable la comanda però no vull bolcar a un fitxer temporal, més endavant en els exemples veurem com.
Opcions de caixa
Caixa de missatge (–MsgBox)
Serveix per posar un missatge en pantalla fins que l'usuari premi enter.
--title de diàleg "títol" --MsgBox "Hola Món" 0 0
Menú SI / NO (–yesno)
Serveix per respondre preguntes amb resposta SI / NO si la resposta és SI retorna 0 si la resposta és NO retorna 1
--title de diàleg "Títol" --yesno "T'agrada el color vermell?" 0 0
Caixa d'informació (–de Fitxa)
Aquesta caixa mostra en pantalla la informació que nosaltres vulguem és convenient afegir un sleep (comandament que espera x segons per continuar) per a mostrar-la.
--infobox de diàleg "espera 4 segons" 0 0 ; somni 4
Caixa d'entrada (–inputbox)
S'utilitza per recollir dades.
--title de diàleg "nom" --inputbox "Posa el teu nom:" 0 0
Caixa de password (–PasswordBox)
És igual que la caixa d'entrada però no es mostren els caràcters que s'escriuen.
--title de diàleg "clau" --PasswordBox "Posa la contrasenya:" 0 0
Caixa de text (–Caixa de text)
La caixa de text és un visor d'arxius i mostra l'arxiu que li indiquem.
--title de diàleg "arxiu fstab" --quadre de text / etc / fstab 0 0
Caixa de menú (–menú)
Ens permet escollir una opció entre diverses opcions numerades
--menu de diàleg "La millor truita és:" 0 0 0 1 "amb ceba" 2 "sense ceba" 3 "amb Pebrots"
Caixa de checklist (–llista de comprovació)
És un menú amb diverses opcions de les que podem escollir diverses. Les opcions que posem en en estaran enceses i les que posem en apagat suprimit.
--checklist de diàleg "Escull les opcions que desitgis:" 0 0 0 1 formatge on 2 "mostassa" en 3 anxoves off
Un esment especial dins checklist per a l'opció –separate-output que ens retorna una línia per cada selecció realitzada molt útil per executar diferents ordres per cada selecció realitzada.
Caixa de radiolist (–radiolist)
És un menú amb diverses opcions de les que podem escollir sols una.
--radiolist de diàleg "Escull el teu truita preferida:" 0 0 0 1 "amb ceba" apagat 2 "sense ceba" en 3 "de pebrots" apagat 4 "de espàrrecs" apagat
Caixa de calendari (–calendari)
És un calendari on podem escollir una data.
--title de diàleg "calendari" --calendari "Tria una fletxa" 0 0
Altres opcions de caixa
A més de les opcions de caixa que hem vist hi ha altres opcions que poden ser interessants d'utilitzar per conèixer-les no dubtis a acudir a l'ajuda.
home de diàleg
Com utilitzar les dades obtingudes amb dialog
Per poder utilitzar en un script les dades recollides pels quadres de diàleg dialog hi ha varaias opcions que jo he trobat, però segur que a vosaltres se us ocorren mes no dubteu en comunicar-me-i les afegiré al post.
Redireccionar la sortida d'dialog a un arxiu.
Podem emmagatzemar la sortida de l'ordre dialog a un arxiu, normalment el posarem a la carpeta / tmp i el esborrarem després d'utilitzar, a continuació us poso un script amb un exemple explicat.
#!/bin/bash
# Per Ignacio Alba Obaya
# https://aplicacionesysistemas.com
# executem el quadre de diàleg posant al final 2>/tmp / nombre.tmp. $$
# emmagatzemem en un arxiu el nom introduït.
# recordar que 2> redirecciona la sortida d'error a un fitxer.
--title de diàleg "nom" --inputbox "Posa el teu nom:" 0 0 2>/tmp / nombre.tmp. $$
# esborrem la pantalla
clear
# vam mostrar el nom emmagatzemat
cat /tmp/nombre.tmp.$$
# esborrem l'arxiu amb el nom
rm -f /tmp/nombre.tmp.$$
# fem un salt de línia perquè no se'ns s'amuntegui amb l'avís de sol·licitud
echo -e "\n"
Emmagatzemar la resposta en una variable.
Per emmagatzemar el resultat el realitzarem creant una funció i llamandola des d'una variable.
#!/bin/bash
# Per Ignacio Alba Obaya
# https://aplicacionesysistemas.com
# Emmagatzemar el resultat d'dialog en una variable
# vam crear la funció fundialog
fundialog = ${fundialog = diàleg}
# vam crear una variable data amb la sortida de dialog
# redireccinando amb --stdout la sortida de dialog
# a la sortida estàndard, fixa't en que la funció aquesta entre
# accents dels de les tecles [ si no és així no funciona.
Data = `$ fundialog --stdout --title "calendari" --calendari "Tria una data" 0 0`
# Mostrem la data capturada
echo $ data
Com gestionar sortides de checklist
També hem de poder gestionar múltiples opcions de sortida quat tenim un checklist de tal manera que cada opció desencadeni diferents esdeveniments. Una manea de fer això és la següent:
#!/bin/bash
# Per Ignacio Alba Obaya
# https://aplicacionesysistemas.com
# Creem la varaible funcheck en la qual emmagatzemem la
# ordre dialog amb l'opció --separate-output
funcheck =(--checklist --separate-sortida de diàleg "Selecciona els grups als quals pertany:" 0 0 0)
# Definim les opcions que apareixeran a la pantalla
# apareixeran encesos els que marquem amb on.
opcions =(1 "opció 1" en
2 "opció 2" apagat
3 "opció 3" apagat
4 "opció 4" apagat
5 "opció 5" en
6 "opció 6" apagat
7 "opció 7" apagat)
# Creem la funció seleccions que executa funcheck amb opcions
# i reenvia la sortida al terminal perquè el for següent executi
# les ordres
seleccions = $("${funcheck[@]}" "${opcions[@]}" 2>&1 >/dev / tty)
# netejar la pantalla
clear
# afegim un for perquè executi una ordre en funció de
# las selecciones realizadas puedes cambiar el echo por
# cualquier comando o secuencias de comandos
for seleccion in $selecciones
do
case $seleccion in
1)
ressò "Escogiste la opción 1"
;;
2)
ressò "Escogiste la opción 2"
;;
3)
ressò "Escogiste la opción 3"
;;
4)
ressò "Escogiste la opción 4"
;;
5)
ressò "Escogiste la opción 5"
;;
6)
ressò "Escogiste la opción 6"
;;
7)
ressò "Escogiste la opción 7"
;;
esac
done
Conclusiones sobre dialog
En mi opinión dialog es una forma elegante de crear menús para nuestros scripts permite de manera sencilla crear programas para terminal.
Darte las gracias por leer nuestro blog espero que te guste nuestro contenido, te pediria que no olvides dar +1 o compartir en las redes sociales, no ganamos nada con este blog y es para nosotros cada me gusta o mas 1 es una pequeña recompensa 😀
Saludos excelente post, muy bien explicado lo referente a la interfaces gráfica en la terminal linux.
fue de gran ayuda tu blog hermano, gràcies
ayudo*
Moltes gràcies!
fue de mucha ayuda!
Moltes gràcies, molt bon bloc!
Gràcies