Como retornar a una funcion?

Imagen de Warcer
0 puntos

Bueno el problema es el siguiente:

function menu_principal ()
{
SELECCION=$(dialog --stdout --backtitle "OpenDoor 1.0" \
		--title "Menu" \
		--menu "Seleccione una opcion de la lista" 0 0 0 \
		1 "Conexion remota" \
		2 "Creditos" \
		3 "Salir" )
}
menu_principal
if [ "$SELECCION" = "1" ]; then
	conexion_remota
	conexion_remota_puerto
	nc -vv $IP $PUERTO
		if [ "$?" = "1" ]; then
			mensaje_error_conexion
		fi
elif [ "$SELECCION" = "2" ]; then
	creditos
elif [ "$SELECCION" = "3" ]; then
	salir
elif [ "$?" = "1" ]; then
	salir
		if [ "$?" = "1" ]; then
			???????????
		else
			exit
		fi
fi

El script lo unico que hace es conectarse a una maquina remota mediante NetCat (uso personal) y bueno el problema surge cuando termino una sentencia y quiero regresar al menu principal como por ejemplo aqui:

elif [ "$?" = "1" ]; then
	salir
		if [ "$?" = "1" ]; then
			???????????
		else
			exit
		fi
fi

Como ven lo que quiero es regresar al menu principal si $? es igual a 1, pero si pongo menu_principal ahi ya no me deja elegir las opciones que tiene la funcion, simplemente termina.

Abra algun otro metodo para elegir opciones? o hay alguna forma de regresar a la funcion antes de las sentencias if...elif..else?

No se si me explique bien :(

Imagen de slap
+1
0
-1

Lo que deberías hacer es que el menú ppal sea lo 1º que se ejecuta dentro de un bucle infinito.

Es decir, algo como:

while true; do
código del menú
case $SELECCION
...
easc
done;

de esta forma, después de cada acción, se ejecutaría de nuevo el bucle, a no ser que la opción elegida te saque de él.

Saludos.
slap

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es