IF
if
then (también if ... ; then)
else
fi
ELIF
if
then
elif
else
fi
if [ $timeofday = "yes" ] no es correcto porque si, por ejemplo tuviéramos que asignar un valor a timeofday leyendo de teclado con read y sólo pulsáramos enter obtendríamos un error
[: =: unary operator expected
porque en realidad estaría leyendo
if [ = "yes" ]
así que siempre
if [ "$timeofday" = "yes" ]
con lo que leerá
if [ "" = "yes" ] que es una cadena vacía válida para la comprobación.
Para eliminar la nueva línea
echo -e | no lo aceptan todos los sistemas |
echo -n | válido para bash |
printf | es la opción portable |
FOR
for variable in valores
do
comandos
done
WHILE
while condición do
comandos
done
UNTIL
until condición do
comandos
done
CASE
case variable in
patrón ) comandos;;
patrón2 ) comandos;;
patrón3 ) comandos;;
patrón4 ) comandos;;
...
esac
Se ponen dos punto y coma al final porque los patrones pueden constar de varias sentencias. Siempre se ejecuta el primer patrón que corresponda aunque también lo haga uno posterior.
case "$timeofday" in
Y | y | Yes | yes | YES )
echo "Has contestado afirmativamente"
;;
[Nn]*) echo "Has dicho que no" #(las comillas no funcinan entre paréntesis).
;;
esac
LISTAS
LISTAS AND
if [ -f file1 ] && echo "Hola" && [ -f file2 ] && echo " ¿qué tal?
then
echo "La lista es verdadera"
else
echo "La lista es falsa"
fi
es falsa cuando no se cumpla una condición y ya no comprueba más.
LISTAS OR
condición1 || condición2 || condición3 || ...
Es verdadera en cuanto se cumpla una condición y ya no comprueba más.
BLOQUES DE SENTENCIAS
Si se desea utilizar más de una sentencia en un miembro de una lista AND u OR se deben incluir entre corchetes.
No hay comentarios:
Publicar un comentario