Linux/Unix Shell Scripting - Menu con submenus en Script Bash atascado.

   
Vista:

Menu con submenus en Script Bash atascado.

Publicado por cder (8 intervenciones) el 24/02/2014 21:25:28
Hola muy buenas soy nuevo en esto de los scripts pero me parece interesante. Tengo un pequeño problema con un menu que estoy creando:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
 
 #Menu principal
while [ opcion != "" ]
do
clear
echo
 
    echo "1)" "COMANDOS 1"
/n
    echo "2)" "COMANDOS 2"
/n
    echo "3)" "SALIR"
/n
 
read -p "Introduce una opcion: " opcion
    case $opcion in
 
    # Aquí quería hacer que la primera opción del menú principal "COMANDOS 1", tuviera por ejemplo esas 
nuevas opciones. Y una vez hecho la acción
(por ejemplo crear una carpeta nueva) que de un mensaje de volver al menú COMANDOS 1.
 
    1) COMANDOS 1
        1) Crear una carpeta nueva
        2) Eliminar una carpeta
        3) Volver al menú principal.
 
            Introduce una opcion:
 
    #Al igual que en "COMANDOS 1", en este quiero hacer lo mismo.
 
    2) COMANDOS 2
        1) Crear una carpeta nueva
        2) Eliminar una carpeta
        3) Volver al menú principal.
 
            Introduce una opcion:
 
    3) break;;
       *) break ;;
   esac
done
exit 0

Decir que intente meter esos dos submenus con un while pero me da error. Como puedo conseguir eso que puse en comentarios "#·
Saludos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Menu Script Bash atascado.

Publicado por xve (254 intervenciones) el 25/02/2014 08:02:55
Hola cder, no me queda muy claro... tu lo que quieres hacer es un menú que tenga un submenu?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu Script Bash atascado.

Publicado por cder (8 intervenciones) el 25/02/2014 13:54:27
Hola XVE gracias por la respuesta y si, quiero tener submenus pero no me sirve nada de lo que encuentro en internet. La idea sería la siguiente:

Menú Principal

1) Submenu 1
2) Submenu 2
3) Salir

Eso sería el Menú principal, ahora bien, cuando pulso por ejemplo la opción 1 quiero que me lleve al Submenu 1 que quiero que cuente con varias opciones (como ejemplo solo pongo 3).

Submenu 1

1) Crear carpeta nueva
2) Eliminar carpeta
3) Volver al Menú Principal (no al submenu 1)

Vale, una vez elija por ejemplo la opción 1, quiero que me cree esa carpeta y cuando acabe me salga un mensaje que diga Pulsa Intro para volver al Submenu 1.

Bueno espero que lo entiendas así, es que no sé si me explique bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Menu Script Bash atascado.

Publicado por xve (254 intervenciones) el 25/02/2014 19:15:31
Hola, aquí tienes como podría ser:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/bash
 
#Muestra el menu general
function _menuPrincipal()
{
    echo "1) menu1"
    echo "2) menu2"
    echo "3) Salir"
    echo
    echo -n "Indica una opcion: "
}
 
function _submenu1()
{
    echo
    echo "1) Submenu1-1"
    echo "2) Submenu1-2"
    echo "3) Salir"
    echo
    echo -n "Indica una opcion: "
}
 
function _submenu2()
{
    echo
    echo "1) Submenu2-1"
    echo "2) Submenu2-2"
    echo "3) Salir"
    echo
    echo -n "Indica una opcion: "
}
 
opc=0
until [ $opc -eq 3 ]
do
    case $opc in
        1)
            opc1=0
            until [ $opc1 -eq 3 ]
            do
                case $opc1 in
                    1)
                        echo "menu 1 submenu 1"
                        ;;
                    2)
                        echo "menu 1 submenu 2"
                        ;;
                    *)
                        _submenu1
                        ;;
                esac
                read opc1
            done
            _menuPrincipal
            ;;
        2)
            opc2=0
            until [ $opc2 -eq 3 ]
            do
                case $opc2 in
                    1)
                        echo "menu 2 submenu 1"
                        ;;
                    2)
                        echo "menu 2 submenu 2"
                        ;;
                    *)
                        _submenu2
                        ;;
                esac
                read opc2
            done
            _menuPrincipal
            ;;
        *)
            _menuPrincipal
            ;;
    esac
    read opc
done

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Menu Script Bash atascado.

Publicado por cder (8 intervenciones) el 25/02/2014 23:15:31
Muchisimas gracias, me sirva o no. Cuando acabe todo el script te comento si me funciono.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu Script Bash atascado.

Publicado por cder (8 intervenciones) el 26/02/2014 02:53:12
He probado tu script así sin añadir nada y me sale esto:

1
2
3
sn.sh: línea 2: $'\r': orden no encontrada
sn.sh: línea 4: error sintáctico cerca del elemento inesperado `$'\r''
'n.sh: línea 4: `function _menuPrincipal()

Es normal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Menu Script Bash atascado.

Publicado por xve (254 intervenciones) el 26/02/2014 10:59:10
La verdad no entiendo... en la linea 2 no hay nada, no? no se que quiere decir con error sintactico... no lo habia visto nunca... en el código no hay ningún "\r", no?
Que editor has utilizado para generar el archivo?

Es un script de bash, por lo que tienes que ejecutarlo con: bash archivo

Si nos puedes comentar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu Script Bash atascado.

Publicado por cder (8 intervenciones) el 26/02/2014 12:11:52
Pues bien, copie tu código al nano, y cuando lo guarde lo ejecute de esta forma:

sudo bash sn.sh (sn es el nombre que le dí). Voy a utilizar otro editor que no sea nano a ver si es por eso.


Gracias por las molestias que te estas tomando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu Script Bash atascado.

Publicado por cder (8 intervenciones) el 26/02/2014 12:48:42
Pues lo acabo de crear con el editor Vim y me hace lo mismo. Esta vez, no copie y pegue, lo escribí, pero me sale el mismo error. Alguna otra idea?
Pensaba que era problema de ubuntu pero lo que hice fue crear un pequeño script y ejecutarlo y me funciono sin problemas. Pero con este siempre el mismo error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu Script Bash atascado.

Publicado por cder (8 intervenciones) el 26/02/2014 13:03:59
Bueno elimine el Vim y lo volví a instalar y ahora funciono el script no dio error ninguno copie y pegue.... Vamos un misterio pero por lo menos ahora me funciona. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Menu Script Bash atascado.

Publicado por xve (254 intervenciones) el 26/02/2014 20:28:56
Que cosa mas extraña... yo lo he desarrollado y probado con Debian testing.

Gracias por comentarlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu Script Bash atascado.

Publicado por cder (8 intervenciones) el 28/02/2014 02:08:05
Oye muchas gracias por todo, una cosa más. Como puedo hacer para que me salga un mensaje al finalizar la tarea que le mando que diga: Pulse una tecla para volver al menu " X "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Menu Script Bash atascado.

Publicado por xve (254 intervenciones) el 21/11/2015 08:48:00
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu para eliminar por nombre o por tamaño

Publicado por anie (1 intervención) el 20/11/2015 19:09:40
Hola buen día disculpa podrías ayudarme , tengo mi proyecto final de linux y en una parte me piden hacer un menu en el cual tenga
opcion
a) eliminar por tamaño de archivo
b) eliminar por nombre del archivo
pero solo me tiene que borrar los archivos que estan dentro del directorio en el que estoy
Porfavor te lo agradeceria muchisimo :( ya lo intente de muchas formas y no me funciona con los comandos y es para HOY!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar