Scripts en Linux

Un script en linux es un programa escrito en el lenguaje de Linux, es decir, una concatenación de comandos. Los scripts son muy útiles para realizar acciones que repetimos habitualmente y que suponen la ejecución de varios comandos o para ejecutar una concatenación compleja de acciones, que es más fácil de ir escribiendo y corriguiendo si lo hacemos como si se tratase de un programa. De este modo escribimos todos los comandos que queremos ejecutar en un fichero de texto con un comando por línea. Así ya hemos creado un script que cuando lo ejecutemos será equivalente a ejecutar todos los comandos que tenemos en el script.

Tux

Tux

La potencia de los scripts en Linux tal vez no se aprecie con el programa que ponemos como ejemplo, pero conforme vaya aumentando nuestro conocimiento de Linux, con más comandos y más complejos podremos automatizar tareas muy complejas. Con este post, de hecho creamos, la sección de “comandos avanzados”, donde describiremos comandos de interés para la programación de tareas complejas.

Veamos un ejemplo sencillo. Escribiremos un fichero de texto plano (no un .odt, .xdoc o similar que aparte del texto visible contiene mucha información “oculta” para darle el formato) que contenga las siguientes líneas y que llamaremos hola.sh:

#!/bin/bash

mkdir TMP
cd TMP
touch newfile.txt
echo "Hola mundo, el fichero ha sido creado"
ls

 

En este simple script hemos creado el directorio TMP con mkdir, nos hemos metido dentro de este directorio con cd, hemos creado un fichero vacío llamado newfile.txt con el comando touch, mostramos en pantalla un mensaje empleando el comando echo y listamos los ficheros que existen en el directorio con el comando ls. La primera línea es un poco especial e indica que “lenguaje queremos utilizar” (que shell). En este caso usamos bash que es el más común.

No obstante, no vamos a poder ejecutar el fichero hola.sh pues es un fichero de texto sin permiso de ejecución. Para darle permiso de ejecución usamos el comando chmod.

Tras darle permiso para ejecutarse a nuestro script hola.sh, dependiendo de la configuración de nuestro Linux, para ejecutar nuestros scripts debemos indicarle el donde está, en este caso si está en nuestra carpeta se indica explícitamente precediendo el nombre con “./". Si lo ejecutamos obtenemos:

$ chmod u+x hola.sh
$ ./hola.sh
Hola mundo, el fichero ha sido creado
hola.sh   newfile.txt

 

Donde nos muestra en una línea el mensaje del que hemos enviado a pantalla con echo y en la siguiente el resultado del comando ls.

La potencia de los scripts en Linux tal vez no se aprecie con un programa tan sencillo, pero conforme vaya aumentando nuestro conocimiento de Linux, con más comandos y más complejos podremos automatizar tareas muy complejas.

 

Leave a Reply