Cómo crear un script de Shell

Cómo crear un script de Shell

Como sabes, un buen administrador de sistemas debe saber shell scripting, ya que de esta forma puedes ser capaz de automatizar tareas que de otra forma te podrían llevar horas o incluso días. Pero si todavía te estás preguntando ¿qué es shell script? Voy a taener que explicartelo desde el principio.

¿Qué es shell script?

La shell es la interfaz que ofrece un sistema operativo Linux ( o cualquier derivado de Unix) mediante la cual puedes mandar a la máquina que ejecute comandos. Esta interfaz se denomina CLI (Command Line Interface) o interfaz de línea de comandos, y para que el sistema te responda, debes conocer de forma precisa los comandos que puedes ejecutar. Esta es la imagen de una shell normal que puedes encontrar:

Shell de Linux

Existen diferentes shell en el mundo de Linux, empezando por la famosa “Bourne Shell” o “sh” y pasando por sus múltiples evoluciones, Korn Shell (ksh), Bourne Again Shell (bash), o Debian Bash (dash).

Si quieres saber más sobre los comandos de Linux que debe conocer cualquier administrador de sistemas o cualquier amante del mundo de Linux, puedes acceder a mi Curso de Linux gratuito y conseguir un 50% de descuento en la mejor guía de comandos de Linux que puedes encontrar. Es esta guía tendrás más de 80 páginas de comandos explicados y con ejemplos para poder manejar la CLI como un verdadero experto.

Si lo que buscas es un Curso de Shell Scripting avanzado, tutorizado por Jaime Pons, profesor de esta academia, puedes encontrarlo en la página de cursos.

¿Qué es un script de shell?

Pues por explicartelo de forma sencilla, un script de shell es un fichero en el que puedes incluir uno o varios comandos con la intención de facilitar las tareas que se deben ejecutar en uno o varios equipos al mismo tiempo.

Pero si quieres un poco mas de detalle, te diré que en un script de shell no solo trabajamos con comandos. Dentro de un script puedes trabajar con parámetros, controles de flujo (condicionales, bucles…), ficheros, redirecciones, funciones y muchas cosas más.

Cómo crear tu primer script de shell

Para empezar necesitamos generar un fichero con el que más tarde trabajaremos. Para ello podemos utilizar el comando “touch” y el nombre, normalmente para seguir unas buenas prácticas, debe tener la extension “sh”.

jaime@aprendolinux:~$ touch ejemplo.sh

Perfecto, una vez que tenemos un fichero creado podemos empezar a escribir en el … para serte sincero, este paso no hacía falta ya que cuando abres un fichero con un editor tipo “vim” y éste no existe, se generará uno nuevo con ese nombre. Pero bueno, no está de más conocer un nuevo comando.

Ahora pasamos a la edición del fichero, por ejemplo con “Vim”, uno de los editores más potentes que existen en el mundo de Linux. Si quieres saber como utilizarlo, puedes ir al curso rápido de Vim que tengo en Youtube.

#!/bin/bash

echo "Introduce tu nombre: "
read usuario

fecha=`date +%d-%m-%Y`

echo "Hola $usuario, hoy es día $fecha y estás conectado al equipo $HOSTNAME "

A continuación te explico todo lo que hace el script:

  • La primera línea indica al sistema que el interprete que debe utilizar para ejecutar este script es el de “bash” ya que es uno de los shell más completos que tiene Linux.
  • Después con un “echo” conseguimos que se imprima por pantalla un texto.
  • Con el comando “read” esperamos a que el usuario introduzca información al script, y se almacena en una variable que hemos llamado usuario.
  • La siguiente línea sirve para almacenar la fecha de hoy en un formato amigable.
  • Por último, con el nombre del usuario introducido y con la fecha que hemos obtenido en la línea anterior, ofrecemos por pantalla un texto.

Para terminar, ponemos permisos de ejecución al fichero y lo ejecutamos para ver como funciona:

jaime@aprendolinux:~$ chmod +x ejemplo.sh
jaime@aprendolinux:~$ ./ejemplo.sh
Introduce tu nombre:
jaime
Hola jaime, hoy es día 04-04-2022 y estás conectado al equipo aprendolinux

Deja una respuesta

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