Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: davidel11 en 26 Enero 2018, 20:30 pm



Título: Ayuda con menú en bash
Publicado por: davidel11 en 26 Enero 2018, 20:30 pm
Hola a todos! Nos han mandado un trabajo para clase y tengo un par de dudas. El enunciado es el siguiente:

Cree un script que muestre por pantalla un menú con cuatro opciones que realice lo siguiente:

1) Mostrar la fecha.
2) Mostrar los usuarios conectados.
3) Mostrar el directorio de trabajo.
4) Listar el contenido del directorio de trabajo.

De momento llevo lo siguiente, pero quiero mejorarlo un poco. Quiero que al escoger una opción, aparezca la información pero no el menú, sino que pregunte si quiere mostrar de nuevo el menú. En caso de darle al sí (s), borrar pantalla y volver a mostrarlo. En caso de elegir que no, borrar pantalla y mostrar un mensaje de salida. He estado probando con varios if, pero creo que no los estoy poniendo en el lugar correcto del código. Adjunto foto de cómo me sale ahora. Selecciono la opción pero me sale tanto la información como el menú. Muchas gracias por adelantado! Un saludo

(http://i65.tinypic.com/el4lrm.png)

Código:
#!/bin/bash
clear
while :
do
echo " Escoja una opcion "
echo "1) Mostrar la fecha"
echo "2) Mostrar los usuarios conectados"
echo "3) Mostrar el directorio de trabajo"
echo "4) Listar el contenido del directorio de trabajo"
echo -n "Seleccione una opcion: "
read opcion
clear
case $opcion in
1) echo "La fecha de hoy es:"
date;;
2) echo "Los usuarios actualmente conectados son:";
who;;
3) echo "El directorio de trabajo es:";
pwd;;
4) echo "El contenido del directorio de trabajo es:";
var=$(pwd)
ls "$var";;
*) echo "$opcion no es una opcion válida";
read -p "Presiona ENTER para volver al menú";
esac
done


Título: Re: Ayuda con menú en bash
Publicado por: fary en 29 Enero 2018, 19:40 pm
Mete el clear dentro del while...

Código
  1. #!/bin/bash
  2. while :
  3. do
  4. clear

Para lo demás pues haz otro case al final de mostrar las opciones.

saludos.