🥇 Programación Shell

Ya que hemos aprendido a utilizar algunos editores como vim y nano, podemos empezar a escribir algo de código para la shell.

La programación shell o shell scripting tiene como objetivo automatizar tareas repetitivas mediante la creación secuencias de código contenidos dentro de un programa llamado script.

🍿 Ejemplo de un script de shell

Vamos a crear un nuevo archivo llamado saludar.sh ya sea con vim o nano.

La primera línea del archivo contendra la referencia al interprete de shell que será utilizado, en este caso /bin/bash, esta referencia es conocida como “shebang” que le indica al script que lenguaje es utilizado.

#!/bin/bash

Ahora vamos a crear un comentario, un comentario es una línea de código que es ignorada al momento de ejecutar el script, pero que permite documentar la finalidad de este.

#!/bin/bash
# Este programa saluda a la persona que lo utiliza

Podemos por ejemplo mostrar un saludo a la persona que esta usando el script.

#!/bin/bash
# Este programa saluda a la persona que lo utiliza
echo "Hola $LOGNAME que gusto verte"

🍿 Permisos de ejecución de un shell script

Para ejecutar el script que acabamos de crear lo invocamos desde la terminal.

./saludar.sh
permission denied

La razón del porque no es posible ejecutar el script es debido a que en Linux existen 3 tipos de permisos de un archivo: escritura, lectura y ejecución. Para visualizar los permisos del script usamos ls.

ls -l saludar.sh
-rw-rw-r--

Los permisos se verán mas a detalle en capítulos posteriores, pero basicamente el último bloque de 3 permisos (permisos para el usuario) solo tiene habilitado la “r” que es el permiso de lectura (read). Para poder ejecutar un shell script necesitamos agregarle primero el permiso de ejecución, para ello usamos el comando chmod +x para habilitar su ejecución.

chmod +x saludar.sh

Y ahora podemos ejecutar el comando de 2 formas.

🥤 Ejecutar el comando usando su path absoluto

/home/luis/saludar.sh

o usamos el path relativo, en el caso que nuestro archivo este en el mismo directorio…

./saludar.sh

🍿 Uso de condicionales

Los condicionales en programación proveen diferentes rutas posibles a la dirección de un programa. En el siguiente ejemplo vamos a comprobar si la el directorio actual en el que se encuentra el usuario $PWD es el directorio del home de este $HOME.

if [ "$PWD" == "$HOME" ]
then
  echo "Estas en el directorio home"
else
  echo "Estas en el directorio $PWD"
fi

Cuando ejecutamos el script dependiendo de si $PWD es igual a $HOME o no, se imprimirá el primer o segundo mensaje.

🍿 Crear loops en la shell utilizando la sentencia for

Podemos utilizar de forma sencilla el loop for para recorrer un listado de paises

for pais in Italia Alemania Francia Holanda
do
  echo "$pais"
done

El resultado que tendriamos seria

Italia
Alemania
Francia
Holanda

Tambien es posible recorrer rangos de numeros

for numero in {1..10}
do
 echo "$numero"
done

Nuestra salida sería la impresión de números del 1 al 10, uno en cada línea.

El editor vim Linux vs Mac vs Windows
comments powered by Disqus