Este tutorial ofrece ejemplos de cómo proporcionar mensajes /diálogos en Bash Shell scripts usando herramientas como zenity y whiptail. Usando estas herramientas, su script puede decirle al usuario qué está haciendo el programa actual e interactuar con él. La diferencia entre estas dos herramientas es la forma en que se muestra el cuadro de diálogo o mensaje. Zenity crea una interfaz gráfica de usuario con el kit de herramientas GTK, mientras que whiptail crea un cuadro de mensaje dentro de la ventana del terminal.
Zenity Tools
Instalación de zenity en Ubuntu, ejecute:
sudo apt-get install zenityEl comando para crear un cuadro de mensaje o diálogo con zenity se explica por sí mismo Te daremos algunos ejemplos para referencia.
Crear un cuadro de mensaje
zenity --info --title " Cuadro de información " --text " Esto debe ser información " --width = 300 --height = 200
Crear un diálogo de consulta Sí /No
zenity --question --text " ¿Desea esto? " --ok-label " Sí " --cancel-label = " No "
Crea un cuadro de entrada y guarda los valores de entrada en una variable
a = $ (zenity --entry --title " Cuadro de entrada " --text " Ingrese el valor " --width = 300 --height = 200) echo $ a
Cuando se ingresa, el valor se almacena en la variable $ a.
Este es un ejemplo del mundo real de obtener un nombre de usuario y mostrarlo.
#! /bin /bash ## Esta secuencia de comandos pedirá un par de parámetros # y luego continuará trabajando según los valores ingresados ## Dando la opción a la ciudadanía --question --text " ¿Desea ¿Para continuar? &Quot; # Comprobando si el usuario desea continuar [$? -Eq 0] | | Salir 1 # Permitiendo que el usuario ingrese algunos valoresFIRSTNAME = $ (zenity --entry --title " cuadro de entrada " --text " Por favor, ingrese su nombre. &Quot; --width = 300 --height = 150) LASTNAME = $ (zenity --entry --title " cuadro de entrada " --text " Por favor, ingrese su apellido. " --width = 300 --height = 150) EDAD = $ (zenity --entry --title " Cuadro de entrada " --text " Por favor, ingrese su edad. " --width = 300 --height = 150) # Visualización de los valores ingresados en el cuadro de información --info --title " Información " --text " Tienes $ {FIRSTNAME} $ {LASTNAME} y tienes $ {AGE} (s). &Quot; --width = 300 --height = 100Estas son capturas de pantalla de la ejecución del script anterior.
Box1
Input Box
Input Box
Cuadro de entrada
Cuadro de mensaje
No olvide revisar las útiles opciones de zenity que podrían ayudarle.
Whiptail Tools
Instalación de whiptail en Ubuntu, ejecutando
sudo apt-get install whiptailEl comando para crear un cuadro de mensaje o diálogo con whiptail también es inexplicable. Le daremos algunos ejemplos básicos para su referencia.
Crear un cuadro de mensaje
whiptail --msgbox " Este es un mensaje " 10 40
Crear un diálogo Sí /No
whiptail --yes-button " Yeah " --no-button " Nope " --title " Elija la respuesta " --yesno " ¿Elegirá sí? " 10 30
Cree un cuadro de entrada con los valores predeterminados
whiptail --inputbox " Ingrese su número, por favor. &Quot; 10 30 " 10 "
Un punto para intentar usar el valor de entrada Es preciso mostrar el diálogo con stdout y generar el valor con stderr. En este caso, si usa var = $ (…), no verá el cuadro de diálogo en absoluto, ni podrá obtener el valor ingresado. La solución es intercambiar stdout y stderr. Agregue 3 > &1 1 > &2 2 > &3 al comando whiptail. Lo mismo es cierto para cualquier comando de whiptail para el que desee obtener el valor de entrada.
Crear menú de menú
whiptail --menu " Este es un menú. Elija una opción: " 20 50 10 1 " primero " 2 " segundo " 3 " tercer ";
Este es un script de shell que le pide al usuario que ingrese la ruta a una carpeta y muestre su tamaño.
#! /bin /bash ### Como whiptail tiene que usar stdout para mostrar el diálogo, el valor ingresado se almacenará en stderr. Para cambiarlos y obtener el valor de stdout, debe # usar 3 > &1 1 > &2 2 > &3FOLDER_PATH = $ (whiptail --title " Obtener el tamaño de la carpeta " /- cuadro de entrada " Introduzca la ruta de la carpeta: " /10 30 /" /home " /3 > &1 1 > &2 2 > &3) if [-d $ FOLDER_PATH] thensize = $ (du -hs " $ FOLDER_PATH " | Awk '{print $ 1}') whiptail --title " Información " /- msgbox " El tamaño de $ {FOLDER_PATH} es $ {size} " /10 40elif [-f $ FOLDER_PATH] thenwhiptail --title " ¡Advertencia !!! " /- msgbox " ¡La ruta que ingresó es una ruta a un archivo, no una carpeta! &Quot; /10 40elsewhiptail --title " Error !!! " - msgbox " Ruta que ingresó No se reconoce. Inténtelo de nuevo " /10 40fiEstas son algunas capturas de pantalla del ejemplo anterior:
cuadro de entrada
cuadro de mensaje
Si trabaja bajo el terminal, el manual de ayuda siempre es útil.
Conclusión
La selección de la herramienta adecuada para mostrar el cuadro de diálogo depende de si desea ejecutar su script en el escritorio o servidor. Los usuarios de máquinas de escritorio suelen utilizar un entorno de ventana GUI, o pueden ejecutar scripts e interactuar con las ventanas mostradas. Sin embargo, si espera que el usuario esté trabajando en el servidor (en ausencia de una interfaz gráfica), es posible que desee asegurarse de que siempre se muestre, luego use whiptail o cualquier otra herramienta que muestre el diálogo en una ventana de terminal pura. Br>
¿Cómo veo todos los procesos en ejecución en Linux? Puedes usar el comando ps.
La disponibilidad del sistema se puede mejorar en gran medida mediante la redundancia del hardware o
En el desarrollo de software, las tareas a menudo tienen que ir a la suspensión porque no se cumplen
Primero, la configuración de snmp del switch, el siguiente es el comando de configuración de la se
Haga un buen trabajo en la administración de registros de Linux
Mecanismo de señal de Linux El mecanismo de señal de Linux detallado
Inux sistema de gestión y mantenimiento - comando ifconfig
Linux Network Protocol Stack Network Device Management
Análisis del sistema de archivos de Linux
Uso de semáforos para controlar la sincronización de subprocesos de Linux
Cinco comandos simples de Linux para ayudarte a resolver problemas de rendimiento
Introducción de comandos de Linux: destacados de la aplicación de comandos VI
Detalles del desarrollo del controlador de Linux
VMware vCenter Converter Standalone convierte la solución de problemas de Linux
Cómo configurar la línea de fuego cruzado CF del sistema Win7 cómo configurar la pantalla completa
Descarga de código fuente de Kindle Fire HD
Cómo resolver el problema de la pantalla azul del sistema WinXP 0x0000007b
Cómo modificar hosts en el sistema Win8
¿Qué pasa si el sistema Win8.1 no puede ejecutar programas Java?
Método del sistema Windows 8 con un solo clic para montar el disco virtual VHD
Cómo bloquear el registro del sistema Win7 directamente para evitar ser manipulado
Seis maravillas de las propiedades del archivo WinXP que no conoces
¡Recorrido completo de la instalación de Windows8 y tutorial de instalación de Win8! (4)