Linux/Unix Shell Scripting - menu linux script

 
Vista:
sin imagen de perfil

menu linux script

Publicado por andres (2 intervenciones) el 11/08/2021 01:52:23
#!/usr/bin/bash
# Read Password
# Run menu
opciones="RHE SAP CELTA SODIMAC SALIR"
select opcion in $opciones;
do
echo "ingrese su usuario:"
read user
echo -n "ingrese su password:"
read -s password
echo
if [ $opcion = "RHE" ]; then
sshpass -p $password tsocks ssh [email protected]
elif [ $opcion = "SAP" ]; then
sshpass -p $password tsocks ssh [email protected]
elif [ $opcion = "CELTA" ]; then
sshpass -p $password ssh [email protected]
elif [ $opcion = "SODIMAC" ]; then
sshpass -p $password tsocks ssh -t [email protected]
elif [ $opcion = "SALIR" ]; then
echo "Bye!"
exit
else
echo "Opcion no permitida"
fi
done
## al momento de salir con la opcion 5 SALIR, me vuelve a pedir usuario y password, como hago para evitar ese bucle.
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

menu linux script

Publicado por Tom (361 intervenciones) el 11/08/2021 15:52:57
Prueba con break en vez de exit
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 Antoni Masana
Val: 7
Ha aumentado su posición en 2 puestos en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

menu linux script

Publicado por Antoni Masana (2 intervenciones) el 11/08/2021 16:26:46
Buenas Andres,

te presento dos soluciones:

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
#!/usr/bin/bash
# Read Password
# Run menu
 
user_pass() {
    echo "ingrese su usuario:"
    read user
    echo -n "ingrese su password:"
    read -s password
    echo
}
 
opciones="RHE SAP CELTA SODIMAC SALIR"
select opcion in $opciones;
do
    if [ $opcion = "RHE" ]; then
        user_pass()
        sshpass -p $password tsocks     ssh $user@10.1.130.182
    elif [ $opcion = "SAP" ]; then
        user_pass()
        sshpass -p $password tsocks     ssh $user@129.39.170.55
    elif [ $opcion = "CELTA" ]; then
        user_pass()
        sshpass -p $password     ssh $user@10.240.1.5
    elif [ $opcion = "SODIMAC" ]; then
        user_pass()
        sshpass -p $password tsocks     ssh -t $user@10.1.130.182
    elif [ $opcion = "SALIR" ]; then
        echo "Bye!"
        exit
    else
        echo "Opcion no permitida"
    fi
done

Esta resuelve el problema que tienes, pero tiene otro y es que si el valor no esta permitido queda feo y mal programado.
Esta versión resuelve los dos problemas.

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
#!/usr/bin/bash
# Read Password
# Run menu
 
user_pass() {
    echo "ingrese su usuario:"
    read user
    echo -n "ingrese su password:"
    read -s password
    echo
}
 
opciones="RHE SAP CELTA SODIMAC SALIR"
select opcion in $opciones;
do
    case $opcion in
        "RHE")
               user_pass
               sshpass -p $password tsocks ssh $user@10.1.130.182
               ;;
        "SAP")
               user_pass
               sshpass -p $password tsocks ssh $user@129.39.170.55
               ;;
      "CELTA")
               user_pass
               sshpass -p $password ssh $user@10.240.1.5
               ;;
    "SODIMAC")
               user_pass
               sshpass -p $password tsocks ssh -t $user@10.1.130.182
               ;;
      "SALIR")
                echo "Bye!"
                exit
                ;;
            *)
               echo "Opcion no permitida"
    esac
done

Saludos.
\\//_
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