Académique Documents
Professionnel Documents
Culture Documents
Operador Verdad (TRUE) si: -----------------------------------------cadena1 = cadena2 cadena1 es igual a cadena2 cadena1 != cadena2 cadena1 no es igual a cadena2 cadena1 < cadena2 cadena1 es menor que cadena2 cadena1 > cadena 2 cadena1 es mayor que cadena 2 -n cadena1 cadena1 no es igual al valor nulo (longitud mayorque 0) -z cadena1 cadena1 tiene un valor nulo (longitud 0)
si es un directorio) Eres el dueo del fichero El grupo del fichero es igual al tuyo. fichero1 es mas reciente que fichero2 fichero1 es mas antiguo que fichero2
Podemos combinar varias condiciones con los simbolos '&&' (AND) y '||' (OR), y negar una condicion con '!'. Unos ejemplos mas adelante aclararan como utilizarlos.
if/else
La sintaxis de esta construccion es la siguiente:
if "condicion" then
#!/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="" if [ $CADENA1 = $CADENA2 ]; then echo "\$CADENA1 es igual a \$CADENA2" elif [ $CADENA1 != $CADENA2 ]; then echo "\$CADENA1 no es igual a \$CADENA2" 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 if [ $NUM1 -ne $NUM2 ] && [ $NUM1 -ne $NUM3 ]; then echo "\$NUM1 es diferente a \$NUM2 y \$NUM3" fi if [ $NUM1 -lt $NUM3 ]; then echo "\$NUM1 es menor que \$NUM3" fi
for
La sintaxis de esta construccion es la siguiente:
for nombre [in lista] do comandos que pueden utilizar $nombre done
Un ejemplo nos aclarara las cosas. Vamos a listar informacion en el DNS de una lista de direcciones web:
#!/bin/bash for HOST in www.google.com www.altavista.com www.yahoo.com do echo "-----------------------" echo $HOST echo "-----------------------" /usr/bin/host $HOST echo "-----------------------" done
while
La sintaxis de esta construccion es la siguiente:
#!/bin/bash
NUM=0 while [ $NUM -le 10 ]; do echo "\$NUM: $NUM" let NUM=$NUM+1 done
until
La sintaxis de esta construccion es la siguiente:
#!/bin/bash NUM=0 until [ $NUM -gt 10 ]; do echo "\$NUM: $NUM" let NUM=$NUM+1 done
case
La sintaxis de esta construccion es la siguiente:
echo "\$NUM es igual a uno";; 2) echo "\$NUM es igual a dos";; 3) echo "\$NUM es igual a tres";; esac done
select
La sintaxis de esta construccion es la siguiente:
select nombre [in lista] do comandos que pueden utilizar $nombre done
Un ejemplo simple para aclarar las cosas.
#!/bin/bash select OPCION in opcion_1 opcion_2 opcion_3 do if [ $OPCION ]; then echo "Opcion elegida: $OPCION" break else echo "Opcion no valida" fi done
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.
Libros recomendados sobre el tema (solo en ingles), para profundizar y tener a mano todos los detalles: