Scripting en Linux (IV): Bash. Como Crear y Ejecutar tu Primer Script

Muy buenas. Ahí va otro post de la serie de Linux Scripting. Ahora que ya conoces más el entorno de bash, y la sintaxis básica del lenguaje (sino puedes revisar los primeros posts de la serie), en este post verás como crear y ejecutar tu primer script interpretable por la shell de Linux (en este caso Bash será la shell de nuestra elección).

Como verás, no me centraré tanto en el script como tal (verás ejemplos mucho más completos e interesantes en próximos artículos), sino en revisar el circuito completo que debes realizar, desde construir el script en si, establecer los permisos de ejecución, y ejecutarlo de manera manual. ¡Vamos allá!

Tabla de Contenidos:

  1. Como crear un script SH para Bash
  2. Establecer permisos de ejecución sobre fichero
  3. Ejecutar script SH de forma manual
  4. Continuación

Como Crear un Script SH para Bash

Para crear un script en Bash tan solo debes abrir una hoja en blando con tu editor de texto favorito, y escribir las sentencias que se deben ejecutar. Como editor de texto puedes utilizar:

  • Un editor de texto gráfico. Te puede servir perfectamente el que venga con tu entorno de escritorio (por ejemplo, Gedit en GNOME), pero puedes instalar otro más completo, como Geany.
  • Un editor de texto por consola. Si tienes cierta experiencia con el manejo de la terminal, también puedes utilizar un editor de texto por consola como puede ser Nano o Vim (este ultimo bastante más complicado de utilizar).

Una vez seleccionado el editor, empieza el proceso de escribir el script. En mi caso, utilizaré Nano como editor de texto para construir el script, y lo guardaré en el directorio Documentos. Si quieres hacerlo como yo, tan solo tienes que abrir una ventana de terminal y ejecutar la siguiente orden.

nano Documentos/mi-primer-script.sh

Esto te abrirá un fichero vacío con Nano, en la misma ventana de la terminal. Ahí ya puedes empezar a escribir el contenido del script. Si te fijas, el fichero tiene la extensión sh, indicando que se trata de un fichero con ordenes interpretables por la shell de GNU/Linux.

Como primer paso, para indicarle al sistema que la shell que va a interpretar el fichero es Bash, debes empezar siempre escribiendo esta sentencia como primera línea:

#!/bin/bash

Una vez indicada esta primera línea, ya puedes empezar a escribir el contenido en si del script. Tratándose de un primer script, voy a hacer un ejemplo sencillo, que consistirá en preguntarle al usuario si quiere actualizar el equipo, y, en función de su respuesta, ejecutar una serie de comandos para comprobar actualizaciones, e instalar los paquetes que se puedas actualizar.

El script, al completo, quedaría como te muestro debajo. Como dije, en este post no me he querido centrar en el script en si, sino en el proceso completo, desde la creación, hasta establecer que se ejecuta durante el inicio del sistema.

#!/bin/bash

sudo apt update
sudo apt upgrade
sudo apt autoremove

echo "Todo bien! Hasta luego"

exit

Este es un script muy simple, pero ya nos sirve para el propósito de esta guía. Basicamente aplica tres comandos consecutivos que se encargan de buscar si hay actualizaciones en el equipo, instalarlas en caso de que las haya, y, a continuación, buscar paquete que ya no son necesarios, por tal de eliminarlos. El hecho de tener ese script preparado, te permite que, con solo ejecutarlo, se realicen esas tres tareas de golpe.

Una vez finalizado, puedes guardar el fichero con la combinación de teclas CTRL-O. Como ya le hemos dado un nombre al principio, puedes confirmarlo con Intro, ya ya tendrás el archivo guardado con los últimos cambios. Para cerrar el fichero y salir de Nano, debes utilizar la combinación de teclad CTRL-X.

Ahora que ya tienes el script diseñado, tan solo debes guardar el fichero con un nombre, y terminarlo con la extensión sh. En mi caso, lo he nombrado como mi-primer-script.sh, y lo he guardado, de momento, en el directorio Documentos de mi Home.

Establecer Permisos de Ejecución sobre el Fichero

Ahora que tienes el fichero creado, si intentas ejecutarlo verás que no podrás. Esto es debido a que cualquier fichero nuevo que se crea y se ubica en el directorio personal de usuario, tiene el siguiente esquema de permisos:

- rw- r-- r--

Esto significa que, el usuario propietario del fichero solo tiene permisos de lectura y edición sobre el archivo, mientras que el resto de usuarios solo tendrás privilegios de lectura sobre él.

Para poder ejecutar el script desde tu cuenta de usuario, debes añadir los permisos de ejecución para el propietario del fichero. El resto de permisos los puedes dejar iguales. Esto lo puedes abriendo una ventana de terminal y ejecutando la siguiente sentencia:

sudo chmod +x Documentos/mi-primer-script.sh

Como ves, he puesto la ruta relativa del fichero, que se encuentra dentro del directorio Documentos. Hecho esto, ya podrás ejecutar el script sin problema desde tu cuenta de usuario.

Ejecutar Script SH de Forma Manual

Para ejecutar manualmente un script SH en Bash, el primer paso es abrir una ventana de terminal y situarte en la carpeta donde guardas el fichero, cosa que puedes hacer con el comando cd, seguido de la ruta (absoluta o relativa) del directorio donde se guarda.

cd Documentos

Una vez te has situado en el directorio correcto, que en mi caso es Documentos, ya puedes ejecutar el script de forma manual. Para ello, tienes principalmente dos maneras de hacerlo.

Por un lado, puedes hacerlo directamente a través del siguiente comando, donde únicamente se indica el nombre del script, y mediante el cual el sistema se encargara automáticamente de buscar y llamar el interprete necesario para ejecutarlo.

./mi-primer-script.sh

Otra opción, es especificar manualmente el interprete, antes de indicar el nombre del script. Con esto, lo que estás haciendo es ejecutar directamente el interprete (sh, python, etc) pasando luego, como argumento, el nombre del script. En nuestro caso, como queremos utilizar el interprete Bash, el comando sería el siguiente:

sh mi-primer-script.sh

Dentro del script, he puesto algunas sentencias con el sudo delante (ya que los comandos para actualizar el sistema requieren permisos de administrador), verás, durante la ejecución del mismo, en algún momento se te preguntarán por tus credenciales de usuario.

Otra opción es ejecutar la misma sentencia anterior con el «sudo» delante ya de entrada, para que a lo largo del script ya dispongas del token que te permite ejecutar ordenes como root.

Continuación

Con esta guía ya tienes el proceso general a seguir en el momento de crear y ejecutar un script con Bash. En próximos post verás como ejecutar un script de forma automática en el inicio o apagado del sistema. Antes de finalizar, te dejo a continuación con el resto de posts de esta serie.

  1. Linux scripting. Descubre el enorme poder de automatizar tareas
  2. Linux scripting con Bash. Introducción a Bash
  3. Linux scripting con Bash. Sintaxis del lenguaje
  4. Linxu scripting con Bash. Como crear y ejecutar tu primer script
  5. Linux scripting con Bash. Ejecución durante el inicio del sistema
  6. Linux scripting con Bash. Ejemplo: setup post-instalación para Ubuntu

Hasta la próxima!

Categorías LinuxEtiquetas

3 comentarios en “Scripting en Linux (IV): Bash. Como Crear y Ejecutar tu Primer Script

  1. La verdad esta muy bien esta pagina web, gracias a esto me fue muy bien en cuanto a comenzar a aprender los primeros pasos de scripts en mis estudios :) espero que pueda encontrar mas cosas parecidas la verdad me iria muy bien.

    Me gusta

  2. Hola.
    Agradeciendo su dedicación y trabajo para hacernos más llevadera la diaria pelea con Linux, en mi caso Linux-Mint 18.3 Mate 32 bit, permítanme que les diga que después de crear mi-primer-script.sh, no he podido cambiar los permisos del archivo con sudo «chmod +x Documentos/mi-primer-script.sh», devolviéndome la consola:
    «chmod: no se puede acceder a ‘Documentos/mi-primer-script.sh’: No existe el archivo o el directorio».

    Se me ocurrió ir a las propiedades del archivo e indicar que éste debía ejecutarse como un programa y así pude finalmente ejecutarlo.
    No se si será de relevancia lo que les digo, pero me ha parecido oportuno exponerlo.
    Un saludo.

    Me gusta

    1. Hola Gerardo, muchas gracias por exponerlo, la verdad que no se me ocurrió mencionar que el cambio de permisos también podía realizarse de forma gráfica, utilizando el propio navegador de ficheros :)

      Lo del error que da al utilizar la línea de comandos, parece un tema de que no se reconoce la ruta del fichero. En este caso podría ser por el echo de que la carpeta «Documentos» figure como «Documents», o que el fichero tenga un nombre distinto al que puse yo como ejemplo. Si quieres pruebalo y me dices ;)

      Un abrazo!

      Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

search previous next tag category expand menu location phone mail time cart zoom edit close