2. • Script = Guión = Proceso por Lotes
• Tareas repetitivas se pueden agrupar en un guión y
ejecutarse automáticamente (Batch Processing).
• Usaremos un editor de texto plano (por ejemplo gedit).
• Con #! en la primera línea indicamos qué shell debería
interpretar el resto de comandos (/bin/bash).
• Posteriormente escribimos los comandos separados
por saltos de línea.
• Antes de ejecutar el script tendremos que darle al
archivo permiso de ejecución: chmod +x fichero_script
• Para ejecutar el script teclearemos el nombre del
fichero anteponiéndole los caracteres ./
Introducción a los Scripts
3. - Usamos un editor (por ejemplo gedit) y creamos el fichero
hola.sh:
#!/bin/bash
clear
echo “hola”
- Con #! en la primera línea indicamos qué shell interpretará
el resto de comandos (/bin/bash).
- Posteriormente escribimos los comandos separados por
saltos de línea.
- Le damos permisos de ejecución: chmod +x hola.sh
- Lo ejecutamos: ./hola.sh
Nuestro primer shell script
4. – Una variable tiene un nombre y un valor, y sirve para dotar de
dinamismo y más potencia a nuestros scripts:
FECHA=”15/07/2004”
echo “Hoy es $FECHA”
– FECHA es el nombre de la variable.
– $FECHA es su valor.
– Para asignar un valor, se utiliza “=”. ¡¡¡SIN ESPACIOS!!
Variables
Existen una serie de variables predefinidas:
Las variables de entorno.Las variables de entorno.
(pueden verse con el comando env)
5. – Es posible leer del usuario el valor de una variable,
dotando a nuestros scripts de interactividad.
– cat hola.sh
#!/bin/bash
echo “Dime tu nombre:”
read NOMBRE
echo “Hola $NOMBRE, encantado de conocerte”
Variables: interactividad
– Para ejecutarlo tecleamos: ./hola.sh
6. – Es posible pasar los parámetros o argumentos que
queramos y utilizarlos dentro del script.
– cat nombre.sh
#!/bin/bash
echo “Nombre: $1”
echo “Primer Apellido: $2”
echo “Segundo Apellido: $3”
– ./nombre.sh Juan López Martínez
– ./nombre.sh “Maria Dolores” Pradera Sánchez
– $1, $2, $3... ${10}, ${11},… : argumentos
– $0 es el propio script.
– $#: número de argumentos que nos han pasado.
– $*: todos los argumentos. “$*” = “$1 $2 $3...”
Variables: parámetros o argumentos
7. Operaciones aritméticas
expr: Permite realizar operaciones aritméticas.
- Sintaxis: expr ARG1 OP ARG2
SUMA=`expr 7 + 5` (ojoespacios!)
echo $SUMA
- A algunos operadores hay que anteponerles una
P=`expr 7 * 5` (ojo escapar operadores!)
P=`expr ( 7 + 5 ) * 2`
8. ● test “$NOMBRE”==“Juan” (==, !=, >, <, >=, <=)
● test $DINERO –eq 1000 (-eq, -ne, -gt, -lt, -ge, -le)
● test -f /etc/passwd (-f, -d, -l, -r, -w, -x)
● cero = verdadero
● no cero = falso (¡¡AL REVÉS QUE EN C!!)
Condiciones: test
9. Control del flujo de ejecución
• Alternativa simple: if
• Alternativa múltiple: case
• Bucles repetitivos: while, until, for
14. Sintaxis:
for VARIABLE in LISTA
do
comandos
done
Bucle repetitivo for (para)
Ejemplo 1:
for N in “sopa” “carne” “pan de ajo”
do
echo “Hoy comemos $N”
done
Produce una ejecución repetitiva asignando a una variable
de control valores de una lista.
En la LISTA se define la separación de cada elemento por el
valor de la variable de entorno IFS, que por defecto toma
espacios en blanco, tabuladores y saltos de línea.
Ejemplo 2:
IFS=“:”
echo “Directorios en el path…”
for N in $PATH
do
echo $N
done