Kdialog es una aplicación para KDE que se ejecuta desde la línea de órdenes y abre ventanas y diálogos en modo gráfico según la opción que le suministremos en la ejecución. Es una forma rápida y fácil de ejecutar de forma gráfica un script de shell.
Tomaremos como ejemplo este script para gestionar iptables para ir desgranando las opciones de Kdialog.
Contruimos el menú principal con un mensaje explicativo «Choose from one of the options below:» y diversas opciones:
varmenu=»$(kdialog –menu «Choose from one of the options below:» 1 ‘See current rules’ 2 ‘Edit iptables_script’ 3 ‘Launch iptables_script’ 4 ‘Save curren rules’ 5 ‘Enable iptables.service’)»
Varmenu es la variable que tomará los valores 1, 2, 3, 4 o 5 y que se corresponderán con su respectiva opción del menú.
if [[ $? -eq 0 ]]; then
case $varmenu in
Si el usuario no pulsa el botón Cancelar entonces ejecutaremos la acción que se corresponda a la opción de menú seleccionada.
La opción 1 ejecuta:
sudo iptables -nvL > see_rules.txt
kdialog –textbox see_rules.txt 700 400
Lo que significa que ejecuta el comando que muestra las reglas que están activas y lo guarda en un archivo de texto llamado see_rules.txt. En la siguiente línea mostramos en una caja de texto el contenido de see_rules.txt con las dimensiones 700 x 1400.
La opción 2 ejecuta un comando para editar con kate el fichero /etc/iptables/iptables_script.sh que es el que gestiona las reglas. Sería algo parecido a este script.
La opción 3 lanza el script anterior.
La opción 4 contiene lo siguiente:
kdialog –dontagain kortafuegos:save_ktf_wng –title «Save current rules?» –warningyesno «Are you sure you want to save this rules?»
Muestra un diálogo de confirmación con el título «Save current rules?» y un checkbox para evitar que se muestre el mensaje las próximas veces.
if [[ $? -eq 0 ]]; then
sudo iptables-save > /etc/iptables/iptables.rules
Si el usuario no cancela, entonces ejecuta el comando que guarda las reglas vigentes para aplicarlas en posteriores reinicios. Nota: este comando es para Arch, en Debian sería iptables-save > /etc/iptables.up.rules.
kdialog –title «Rules saved notification» –passivepopup \
«Current rules was saved successfully» 10
Esta orden muestra durante 10 segundos un popup pasivo con el texto «Current rules was saved successfully» y el título «Rules saved notification».
Para finalizar, la opción 5 son los comandos para Arch para activar el servicio de iptables y que se ejecute en cada inicio. Solo se ejecuta una vez. Contienen comandos ya vistos por lo que no entraré en más detalles.
Para ampliar información sobre Kdialog podéis visitar la documentación oficial http://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs
Justo lo que necesitaba,
gracias!!!