educatica!

educación, informática y demás

Shell scripts

Bash shell scripts – checkNet.sh

¿Qué hace este script?

¿Qué problema crees que tiene este script?

Versión 02

Vamos a crear una función que se encargue de comprobar si hay conexión con un host cuya dirección se pasa en el primer parámetro.

Ahora tan solo tendremos que invocar a la función para comprobar si hay o no conexión con el host que se pasa por parámetro.

Vamos a probar el script, porque tiene un pequeño fallo..

El problema está en que, salvo que lo indiquemos expresamente, cuando hacemos referencia a la variable host dentro de la función, estamos haciendo referencia a una variable de entorno que se llama host, cuyo ámbito es todo el script. Es decir, host=$1 está sobrescribiendo el valor que pudiera tener la variable host, a la que le asignamos el valor 10.0.2.5 en la línea 9.

¿Solución? Tenemos dos opciones, la más simple cambiar el nombre de la variable global.

Versión 03

Estar´ía bien refinar un poco las comprobaciones. Si tenemos a Intenet seguro que tenemos conexión con el Router. Es decir, vamos a comprobar dónde puede estar el problema en caso de que no haya conexión a la red.

Podría ser algo así:

Ahora tenemos que descubrir como hacer para que la función retorne un valor de error en caso de que no haya conexión con el host que se le pasa por parámetro. Para ello usamos el comando return.

Es decir, que si hay un error, devolvemos un valor distinto de cero, por ejemplo el 1.

Vamos a probarlo

Ahora le vamos a quitar el cable de conexión a red.

Vamos a configurar nuestra máquina para que haya LAN pero no conexión con Internet.

Deja un comentario

Tema creado por Anders Norén