Linux/Unix Shell Scripting - Opciones en Script

 
Vista:
Imágen de perfil de 4all

Opciones en Script

Publicado por 4all (7 intervenciones) el 23/06/2014 21:36:40
- Hola

- Primeramente presentarme y remitir un Afectuoso Saludo a todos
los integrantes de {lwp}.

- Actualmente estoy o ando algo perdido con un script que preparo
desde hace tiempo para un TEU de instalación con varios Binarios
en diferentes versiones.

- Ya he logrado subsanar la cuestión mediante variables de no tener
que repetir por cada binario la instalación, copiando previamente
el escogido sobre el "menú principal" a su carpeta definitiva,
siempre es la misma, el código sería muy largo y arduo
por ser 5 versiones diferentes,

- Es a la hora de llegar al "submenú" donde se me plantea la incógnita
ya que una vez el binario se encuentre en su carpeta el resto
de la instalación es exactamente la misma.

- Sobre este ejemplo solo incluyo dos Binarios:

#####################################################################

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
function _submenu1()
{
    echo
    echo "   **** Selecciona la versión que deseas instalar  ****"
    echo "                      ========"
    echo "1) Binario 2.0.1" ; $DIR ; $PERM ; $PERM1
    echo "2) Binario 2.1.3" ; $DIR ; $PERM ; $PERM1
    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"
                        $ARCH
                        sleep 2s
                        echo "Instalando"
                        ;;
                    2)
                        echo "menu 1 submenu 2"
                        ;;
                    *)
                        _submenu1

- No sé si en el apartado "submenú 1" hay alguna forma de poder unificar
ambas opciones sobre el comando "case" ya que es en esta parte
donde dependiendo de si se escoge el "submenu 1-1" o el "submenu 1-2"
se me van ambas por diferentes rutas:

1
2
3
4
5
6
7
8
9
10
11
12
case $opc1 in
                    1)
                        echo "menu 1 submenu 1"
                        $ARCH
                        sleep 2s
                        echo "Instalando"
                        ;;
                    2)
                        echo "menu 1 submenu 2"
                        ;;
                    *)
                        _submenu1

##################################################################

- Necesitaría saber si hay alguna forma de indicar que escogiendo
una u otra ambas se unifiquen en la misma salida ya que de otra
forma estaría en lo mismo, tendría que duplicar el código del resto
de la instalación, uno por versión .

- Muchísimas gracias anticipadas por cualquier ayuda o indicaciones prestadas.

- Cordiales Saludos
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
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Opciones en Script

Publicado por xve (309 intervenciones) el 24/06/2014 21:31:27
Hola, no se ver cuando llamas a la función _submenu2, pero puedes juntar los dos resultados en una sola variable y luego hacer el case.

Si _submentu1 te devuelve 1, y _submenu2 también te devuelve uno, puedes hacer:

1
2
3
4
5
6
case $opc1+$opc2 in
    "11")
    ...
    "12")
    ...
...

No se si de esta forma te puede servir... 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
Imágen de perfil de 4all

Opciones en Script

Publicado por 4all (7 intervenciones) el 26/06/2014 12:52:50
- Hola compi.

- Siento la tardanza en la respuesta.

- Muchísimas gracias por tu solución totalmente viable
en el caso de querer tener una misma respuesta pero
desde diferentes submenús.

- Anoto y guardo la sintaxis del comando "case" como una
alternativa mas

1
2
3
4
5
6
case $opc1+$opc2 in
    "11")
    ...
    "12")
    ...
...

- En mi caso era llegar a la misma respuesta dentro del mismo submenú
pero con diferentes opciones, finalmente lo logré tras multiples pruebas
lecturas y ensayo/error:



- De esta forma escogiendo en el "submenú" la opcion 1 o la opción 2
ambas redirigen a la misma ruta o finalidad.

- Cordiales Saludos Compi
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