Script

De doc.ubuntu-es
Revisión a fecha de 23:05 10 feb 2008; Lionel.xor (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Contenido

Definición

Un Script para Bash es un archivo de texto que contiene una sucesión de comandos de Shell que pueden ejecutar diversas tareas de acuerdo al contenido del texto del guión. De esta forma pueden automatizarse muchas acciones para alguna necesidad particular o para la administración de sistemas. El guión debe escribirse en un orden lógico pues Bash ejecutará el guión en el orden en que se escriben las lineas, de la misma forma que cuando se realiza una tarea cualquiera por una persona, por ejemplo; primero hay que poner la escalera y luego subirse.

Los guiones de Bash deben tener siempre como primera linea del guión el texto, para que el Sistema Operativo ejecute la acción usando el programa Bash.

#!/bin/bash

Una vez escrito el guión y guardado en el disco en alguno de los directorios "bin" con el nombre y permiso de ejecución apropiados, se invoca, escribiendo en la consola el nombre del guión. Si el guión tiene una interfaz gráfica se invoca como otro programa cualquiera, uno o dos clic sobre el guión o su icono. Este puede escribirse en cualquiera de los editores de texto de Linux, por ejemplo Kwrite y será ya un guión funcional cuando se salve a alguno de los "bin".

Nota: Es buena práctica cuando se escribe un guión salvarlo apenas se hayan escrito las primeras línea para ir comprobando su funcionamiento e ir corrigiendo los problemas.

Variables

Es impensable elaborar guiones de Bash sin el uso de las variables. Una variable es una estructura de texto (una letra, un número o sucesiones de ellos) que representa alguno de los elementos que varían en valor y/o significado en el entorno de la Shell, sirviendo como elemento básico de entrada/salida de valores a y desde los comandos en su ejecución consecutiva. Para invocar una variable se utiliza el carácter especial $ precediendo al nombre de la variable.

Exixten dos tipos de variables:

Variables intrínsecas de Bash.

Estas son elaboradas por defecto por el propio Bash y son:

  • $0

Nombre del guión

  • $1....$n

Variables que almacenan los n argumentos (opciones) proporcionados al comando.

  • $#

Variable que contiene el total de los argumentos proporcionados.

  • $*

Conjunto de los argumentos.

  • $?

Valor de ejecución del comando anterior, si es cero es que el comando anterior se ejecutó sin errores, de lo contrario hubo algún error.

  • $$

Identifica el proceso del guión.

  • 'Texto en negrita'$!

Identifica el último proceso arrancado en el trasfondo (background).

Variables creadas por el programador.

Las variables pueden ser creadas en cualquier momento, pero siempre antes de su utilización de manera muy simple, se escribe:

nombre_variable=valor_variable

en cualquier momento posterior a la creación si se coloca $nombre_variable dentro del entorno de la Shell el sistema colocará allí valor_variable.

SALUDO=Bienvenido

En cualquier momento posterior si se pone $SALUDO, Bash colocará ahí Bienvenido.

Una variable también puede ser la salida de un comando si ponemos al principio y final del mismo un acento invertido.

SALIDA=`comando`   

le indicará al sistema que donde se escriba $SALIDA debe poner la salida de ese comando. Es práctica común utilizar mayúsculas para las variables a fin de identificarlas fácilmente dentro del guión.

Cuando se ejecutan guiones que pueden ser "hijos" de otro guión en ocasiones es necesario exportar las variables, esto se hace escribiendo;

export nombre_variable

Caracteres especiales

Existe un grupo de caracteres especiales (también llamados meta caracteres) que tienen significado propio para Bash. Algunos son:

  • \

Le indica a Bash que ignore el carácter especial que viene después.

  • " "

Cuando se encierra entre comillas dobles un texto o una variables si esta es una frase (cadena de palabras) Bash lo interpretará como una cadena única.

  • $

Identifica que lo que le sigue es una variable.

  • ' '

Las comillas simples se usan para desactivar todos los caracteres especiales encerrados dentro de ellas, así tenemos que si escribe '$VARIABLE' Bash interpreta literalmente lo escrito y no como variable.

  • #

Cuando se coloca este carácter dentro de una linea del guión, Bash ignora el resto de la linea. Muy útil para hacer comentarios y anotaciones o para inhabilitar una linea de comandos al hacer pruebas.

  • ;

Este carácter se usa para separar la ejecución de distintos comandos en una misma linea de comandos.

  • ``

Se utiliza como se explicó en el punto anterior, para convertir la salida de un comando en una variable. El comando en cuestión se ejecuta en una sub shell.

También están |, (), !, >, <, cuyo significado se verá mas adelante. El espacio es otro carácter especial y se interpreta por bash como el separador del nombre del programa y las opciones dentro de la linea de comandos, por esta razón es importante encerrar entre comillas dobles el texto o las propias variables cuando son una frase de varias palabras.

Otro carácter que debe evitarse en lo posible su uso es el guión (-) ya que para la mayoría de los programas se usa para indicarle al propio programa que lo que sigue es una de sus opciones, de manera tal por ejemplo, si usted crea un archivo con nombre -archivo (en caso que pueda) después será difícil borrarlo ya que rm (programa que borra) tratará el archivo como una de sus opciones (al "ver" el guión) y dará de error algo así, "Opción -archivo no se reconoce".

Herramientas personales