Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net
6-7 m inutos
En nuestra cuarta entrega sobre la introduccion a el interprete de comandos Bash, vamos a ver una pequeña introduccion a
las estructuras de control y bucles en Bash. Estas construcciones nos ayudan a controlar la ejecucion de un script y a obtener
diversos resultados dependiendo de las condiciones que se cumplan o no cuando ejecutamos el script.
if/else: Ejecuta una serie de comandos dependiendo si una cierta condicion se cumple o no.
while: Ejecuta una seria de comandos mientras que una determinada condicion sea cumpla.
until: Ejecuta una serie de comandos hasta que una determinada condicion se cumpla.
case: Ejecuta una o varias listas de comandos dependiendo del valor de una variable.
select: Permite seleccionar al usuario una opcion de una lista de opciones en un menu.
La mayoria de condiciones utilizadas con estas construcciones son comparaciones de cadenas alfanumericas o numericas,
valores de terminacion de comandos y comprobaciones de atributos de ficheros. Antes de seguir viendo como estas
construcciones se pueden utilizar, vamos a ver como las condiciones se pueden definir.
Podemos combinar varias condiciones con los simbolos '&&' (AND) y '||' (OR), y negar una condicion con '!'. Unos ejemplos
mas adelante aclararan como utilizarlos.
if/else
if "condicion"
then
"comandos"
[elif "condicion"
then
"comandos"]
[else
"comandos"]
fi
Como ya hemos dicho, podemos comprobar los valores de terminacion de un comando, y comparar cadenas
alfanumericas/numericas y atributos de ficheros. Nada mejor que unos ejemplos para aclararnos las ideas.
#!/bin/bash
#
# Comprobando terminacion de un comando
#
DIRECTORIO="/tmp/test"
COMANDO="/bin/mkdir $DIRECTORIO"
if $COMANDO
then
echo "$DIRECTORIO ha sido creado"
else
echo "$DIRECTORIO no pudo ser creado"
fi
#!/bin/bash
#
# Comparacion de cadenas alfanumericas
#
CADENA1="uno"
CADENA2="dos"
CADENA3=""
fi
if [ -z $CADENA3 ]; then
echo "\$CADENA3 esta vacia"
fi
#!/bin/bash
#
# Comparacion de valores numericos
#
let NUM1=1
let NUM2=2
let NUM3=3
for
Un ejemplo nos aclarara las cosas. Vamos a listar informacion en el DNS de una lista de direcciones web:
#!/bin/bash
/usr/bin/host $HOST
echo "-----------------------"
done
while
while condicion
do
comandos
done
Un ejemplo simple con while en donde escribimos el valor de una variable 10 veces, despues de incrementar su valor:
#!/bin/bash
NUM=0
until
until condicion; do
comandos
done
Un ejemplo simple con until en donde escribimos el valor de una variable 10 veces, despues de incrementar su valor:
#!/bin/bash
NUM=0
case
case expresion in
caso_1 )
comandos;;
caso_2 )
comandos;;
......
esac
#!/bin/bash
for NUM in 0 1 2 3
do
case $NUM in
0)
echo "\$NUM es igual a cero";;
1)
echo "\$NUM es igual a uno";;
2)
echo "\$NUM es igual a dos";;
3)
echo "\$NUM es igual a tres";;
esac
done
select
#!/bin/bash
Bueno esto es todo por hoy en nuestra introduccion a Bash. En el proximo articulo de esta serie veremos diferentes aspectos
de la entrada y salida de datos en un script Bash.