PROGRAMACIÓN DEL SHELL LINUX

En este post explicare como programar un shell Linux para realizar tareas. Para empezar ¿Que es eso del shell?. El Shell es un intermediario entre el usuario y el sistema operativo que interpreta lineas de comando. Lee la linea, la interpreta, la ejecuta y devuelve un resultado. Existen varios shells, pero en este post vamos a ver solo el sh. La programación de shell se usa mucho para las tareas repetitivas. Yo lo utilizo porque que tengo que cambiar la hora del sistema cuando arranco el ordenador (no es que esté roto, como dice mi abuelo tiene truco). Empecemos con la programación.

Abrimos un fichero nuevo con extensión .sh, en mi caso lo he llamado prueba1.
vi prueba1.sh

Una vez dentro del fichero empezamos a escribir:
#!/bin/bash
# prueba1.sh
#
#Vamos a mostrar los datos de usuario
#
clear
echo "------Mis datos--------"
echo " Nombre: "$LOGNAME #Muestra LOGNAME
echo " Directorio: "$HOME
echo -n "Fecha: "
date   #Fecha y hora
echo #linea en blanco
sleep 3
clear
#Fin de prueba1.sh

Explicación de los comandos:
  • #!/bin/bash --> Indica el interprete con el que se ejecutará el script.
  • # --> Comenta la linea. (El caso de  #!/bin/bash es un caso especial)
  • clear --> Limpia la pantalla.
  • echo "-----Mis Datos----" Muestra por pantala el contenido entrecomillado.
  • $LOGNAME --> Las variables siempre va precedidas de $.
  • sleep 3 --> Espera 3 segundos antes de realizar la siguiente instrucción.

Para ejecutar el fichero primero debemos darle permisos de ejecución, lo hacemos con la instrucción:
chmod ug+x prueba1.sh
Y lo ejecutamos con la instrucción:
./prueba1.sh
Aquí podéis ver el resultado de este script.


En el siguiente ejemplo vamos a ver como hacer que el script nos pida variables, las guarde y nos las muestre por pantalla.
vi prueba2.sh
Codigo:
#Prueba2.sh
#!/bin/bash
#Vamos a hacer una prueba de captura de datos.
clear #borramos la pantalla.
echo "Datos del usuario."
echo -n "Nombre: "; read NOMBRE
echo -n "Apellido: "; read APELLIDO
echo -n "DNI: "; read DNI
echo
echo "Tu Nombre es --> "$NOMBRE
echo "Tu Apellido es --> "$APELLIDO
echo "Tu DNI es --> "$DNI
date
sleep 3
echo
#fin de Prueba2.sh

Practicamente es igual que el anterior solo que después de hacer un echo, escribimos read NOMBRE. Simplemente le estamos diciendo que guarde lo que escribamos en la variable llamada NOMBRE.
Para invocar estas variables lo hacemos poniéndole el símbolo del dolar delante $NOMBRE. Os dejo una foto con el resultado.



Por ultimo os dejo el código que me he hecho para cambiar la hora.
#!/bin/bash
clear
echo "Escribe la Fecha en formato año-mes-dia:"
read fecha
sudo date --set $fecha
echo "Escribe la Hora en formato 24 Horas:"
read hora
sudo date --set $hora
sleep 3
clear

Espero os haya gustado y os sirva este post.
Saludos.

No hay comentarios:

Publicar un comentario