Aprendiendo Script Shell en BashLinux

Tanto en Unix como en Linux, se utilizan shell scripts para realizar una infinidad de tareas. Definimos un shell script como un programa que se escribe con una sintaxis particular, en un archivo de texto plano, para que sea interpretado por un shell, en este caso /bin/bash.

Básicamente un shell script es un programa que llama a otros programas, con la posibilidad de hacer algun tipo de procesamiento propio (como control de flujo, operaciones matemáticas simples, etc).

En linux, para hacer un shell script se usa el shell bash, y es por ello que hay una serie de caracteres y palabras que tienen un significado especial:

#!/bin/bash

Esta línea le indica al sistema que el script será interpretado por el programa que se encuentra a continuación de #!, en este caso, /bin/bash

También nos sirve para decirle al sistema operativo que se trata de un fichero ejecutable y que sepa cual es el intérprete que lo tiene que interpretar. Comandos básicos antes de empezar con el script shell en Bash:

Conocer la versión de bash, usando el siguiente comando:

$ echo $SHELL

/bin/bash

Como podemos ver, nos está indicando que shell usamos y en que directorio está instalado.

Para conocer la versión de Bash usamos el comando:

$ echo $BASH_VERSION

Dónde está instalado Bash, usamos este comando:

$ whereis bash

/bin/bash

Si deseas saber los shell que hay en tu sistema Linux, usa este comando:

$ cat /etc/shells

/bin/bash

/bin/csh

/bin/sh

/bin/tcsh

/bin/zsh

Para que Bash sea el shell por defecto en Linux, esta el siguiente comando:

$ chsh -s /bin/bash

Para hacer un script simplemente abres el editor de texto y lo guardas donde quieras. Después le das permiso de ejecución, por ejemplo el típico hola mundo, que lo guarde como hola:

chmod +x hola

este script lo he construido de la siguiente forma:

#!/bin/bash
#esto es un script
FECHA=$(date)
echo “Hola mundo”
echo “Ahora mismo son”; echo $FECHA
echo “Es hora de despedirse.!”

La primera línea le indica al intérprete de comandos que interprete debe usar para ejecutar el lenguaje que fue utilizado en el programa. La segunda es sólo un comentario ( en Bash, los comentarios comienzan con el símbolo # ).

De este ejemplo podemos ver básicamente los siguientes puntos:

  • un programa en bash comienza por  #!/bin/bash
  • al crear una variable se coloca el nombre de la variable seguido por un = y el valor que contendrá
  • al invocar una variable se le antepone el signo $ al nombre de esta.
  • los comentarios empiezan con #
    nota: entre la variable, el = y el valor no deben existir espacios

Caracteres especiales:

# Todo lo que hay detrás de él son comentarios.
Separa dos comandos:
echo “la fecha de hoy es: ” ; date
. Seguido del nombre de un fichero, hace que el contenido de ese fichero sea interpretado por la shell como si fuese parte del script, es como un #include de C.
‘ ” Distintas formas de entrecomillar cadenas que se explican con detalle más adelante.
Se ejecuta lo que hay entre las comillas como un comando y se sustituye su salida: echo `date` Escapa el siguiente caracter, haciendo que se interprete literalmente.
Accede al valor de una variable:
echo $PATH
Equivale al directorio ‘home’ del usuario, es equivalente a leer el valor de la variable de entorno HOME: echo ~echo $HOME
Escrito después de un comando, hace que éste se ejecute en segundo plano. Esto quiere decir que el script no esperará a que el comando retorne antes de ejecutar la siguiente instrucción.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *