Foros del Web » Administración de Sistemas » Unix / Linux »

boton dialog en consola linux

Estas en el tema de boton dialog en consola linux en el foro de Unix / Linux en Foros del Web. Buenas tardes a todos, Les quiero compartir un problemilla que he tenido hace dias con los cuadros de dialogo en linux para dialog, llevo apenas ...
  #1 (permalink)  
Antiguo 18/08/2011, 15:07
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Información boton dialog en consola linux

Buenas tardes a todos,

Les quiero compartir un problemilla que he tenido hace dias con los cuadros de dialogo en linux para dialog, llevo apenas un par de semanas en el tema de programacion de scripts y no he podido avanzar mucho ya que tengo el siguiente problema.

Cuando doy una orden para la creacion de un usuario el debe buscar en el /etc/passwd y sacarme un resultado si al usuario existe me avisa esto y si no existe pues me avisa que lo creo ... pero cuando le doy cancelar en el cuadro de dialogo no me saca como deberia si no que me dice que el usuario ya existe, quiero corregir esto, he intentado de muchas maneras y no he podido hacerlo, es mas cada vez que intento tomar el resultado del boton cancelar me deja de funcionar.

Hasta este punto esta funcionando al menos sin tomar ningun valor por el boton cancelar:

#!/bin/bash
##
usu=`dialog --stdout --title "Crear usuario:" --inputbox "Nombre del usuario a crear" 0 0`
usu1=`cat /etc/passwd | cut -d : -f 1 | grep $usu`
if [ "$usu" = "$usu1" ]; then
clear
dialog --msgbox "El usuario $usu ya existe" 0 0
elif [ "$usu" != "$usu1" ]; then
clear
useradd -m $usu
dialog --msgbox "Se creo el usuario $usu" 0 0
else
clear
dialog --msgbox "Cancelado" 0 0
fi
exit

Agradezco cualquier colaboracion, se que no es algo demaciado dificil pero no he podido dar con la solucion y esto del autoapredizaje es bueno aunque uno se atore en ocaciones.

De nuevo gracias !
  #2 (permalink)  
Antiguo 19/08/2011, 08:19
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: boton dialog en consola linux

Eso es porque no estás capturando el valor de retorno de dialog. Sabiendo que dialog devuelve 0 si se presiona "Yes" o "OK" y que devuelve 1 si se presiona Cancel, el valor de retorno es lo que deberías comprobar primero, y solamente en caso de que sea 0 comprobar el valor que se introdujo en el campo de texto. A continuación te dejo como creo que debería ser tu script:

Código BASH:
Ver original
  1. #!/bin/bash
  2. usu=`dialog --stdout --title "Crear usuario:" --inputbox "Nombre del usuario a crear" 0 0`
  3. if [ 0 -eq $? ]; then
  4.     if grep -q "^$usu:" /etc/passwd; then
  5.         clear
  6.         dialog --msgbox "El usuario $usu ya existe" 0 0
  7.     else
  8.         useradd -m $usu
  9.         clear
  10.         dialog --msgbox "Se creo el usuario $usu" 0 0
  11.     fi
  12. else
  13.     clear
  14.     dialog --msgbox "Cancelado" 0 0
  15. fi


Saludos.

Última edición por AlvaroG; 19/08/2011 a las 08:28

Etiquetas: consola, dialog, linux, botones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:51.