Bash Scripting

        

Una de las cosas que más utilidad tienen en el mundo Linux, es la programación de shell scripts, dado que éstos nos dan la posibilidad de preparar tareas que simplifican nuestro trabajo diario.

Este artículo dividido en tres partes intenta ser una breve introducción al mundo de la programación de scripts

Lo primero que necesiamos es un editor de texto, cualquiera, pero que guarde el archivo como text/plain

1. Creando un script

Vamos a crear un archivo, hola.sh. Para esto abrirmos nuestro editor favorito y escribimos el típico Hola Mundo

#!/bin/sh #este es un comentario echo Hola Mundo!

Para ejecutarlo, podemos hacerlo pasando el nombre del archivo a la llamada de nuestra shell (bash, sh u otra), en este caso sh

$ sh hola.sh

O podemos darle permisos de ejecución con el comando chmod

$ chmod +x hola.sh

Una vez añadido el permiso de ejecución, ya podemos ejecutarlo directamente:

$ ./hola.sh

Pero si queremos ejecutar nuestro nuevo script desde cualquier lugar, debemos guardarlo en algún directorio que este en nuestro PATH, como recomendación /usr/local/bin o /usr/bin (directorios donde se guardan los ejecutables)

Si observamos el código fuente de nuestro pequeño script, veremos que consta de tres líneas:

  • En la primera se indica el shell que se va a usar como intérprete para este script: #!/bin/sh. Esta siempre debe ser la primera línea de un shell script. (puede ser /bin/bash u otro)
  • La segunda contiene una liena que es un simple comentario (deben comenzar con #)
  • La tercera línea contiene el comando echo, que muestra un mensaje por pantalla.

2. Variables

Una variable es un contenedor que almacena un valor. Utilizamos variables para guardar valores que necesitaremos en nuestro script. A diferencia de otros lenguajes de programación, en Shell las variables no tiene un tipado especifico.

Ejemplos:

# Asignamos el valor 1 a i
i=1
# Asignamos Bienvenidos a la programación de shell scripts! a la variable cadena
cadena="Bienvenidos a la programación de shell scripts!"

Importante: No podemos dejar espacios entre la variable y el igual o el igual y el valor, porque el shell lo interpretará como un comando y nos dará error.

Veamos ahora como podemos obtener el valor de una variable.

Para acceder al contenido de una variable empleamos $ delante de su identificador:

Ejemplos:

$ i=4
# Mostramos el valor de la variable i por pantalla
echo $i
echo "El valor asignado a i es $i"

3. Usando parámetros

También existe la posibilidad de usar parametros en nuestros scripts, estos parámetros son valores externos al programa que son pasados desde la linea de comandos.


$0 contiene el nombre nombre de nuestro script
$# contiene el número de parámetros con los que se ha invocado al shell
$n contiene los parámetros, con n de 1 a 9 (a $#)
{$n} cuando n > 9, tenemos qu especificar los parámetros entre llaves
$$ contiene el PID de nuestro proceso
$* todos los parámetros menos $0

4. La salida de los programas

Cuando se ejecuta un programa, un comando UNIX es un programa, podemos, a parte de redirigir su entrada y su salida, recoger el resultado de su ejecución y su salida.

El resultado es un valor numérico, por lo general cero si todo ha ido bien, y distinto de cero si ha habido alguna clase de error.


Para obtener el resultado de la ejecución del último comando, utilizamos $?

Ejemplo:

mkdir /home/alumnos/$idalumno > /dev/null ; echo $?
if [ $?=0 ]; then echo "El directorio $idalumno se ha creado sin problemas" fi
Para obtener la salida de un comando, utilizamos $(comando) o comillas invertidas: `comando`

Ejemplo:

$ directorioactual=`pwd`
$ echo $directorioactual



Escribir un comentario

Recibe las novedades del Blog Geek vía email:

Sobre esta entrada

Esta página contiene una sola entrada realizada por r2d2 y publicada el 4 de Mayo 2009 10:11 AM.

Refranes Blogger es la entrada anterior en este blog.

Mandriva 2009.1!! es la entrada siguiente en este blog.

Encontrará los contenidos recientes en la página principal. Consulte los archivos para ver todos los contenidos.