Código sencillo

Código avanzado

Si nos fijamos el código es un poco difícil de comprender a priori. No obstante si lo analizamos paso a paso y por partes nos encontramos con varios comandos if.

Si ejecutamos este script nos damos cuenta que en cada comando if, sentencia condicional, ejecutamos un comando cuya salida se mostrará en pantalla. No es buena idea mostrar información que pueda despistar al usuario.

Vamos a redirigir la salida estándar y la de error de los comandos que no queramos que muestren información en pantalla al fichero de agujero negro – /dev/null.
Como segundo cambio, estaría bien utilizar variables para almacenar las direcciones IP y los nombres de dominio completos que usamos. De esta forma facilitamos la comprensión del código, porque hacemos ciertos ping y facilitamos modificar estos datos si fuera necesario tocando tan solo la asignación del valor a la variable.

Utilizando if..elif..else


Con el uso del if..elif..else, lo que estamos haciendo es comprobar condiciones encadenadas. En la línea 10 se comprueba si hay conexión con un host de internet, según la variable: www.educatica.es. SI tenemos conexión con ese host, tenemos conexión a internet. Sino si tenemos conexión con una ip de un equipo en internet, entonces lo que falla, posiblemente sean las DNS (o que el equipo hostInetMain no esté disponible). Eso lo hace la línea 12.
Si falla la línea 12 …

Vamos a liarla un poco 🙂

Vamos a desliarla

Quitamos el cable de red para probar


Dejar una respuesta