Se pueden construir condicionales complegas donde se conjugan varias de ellas a través de los operadores los booleanos “y” &&, “o” (||) y negación (!), este último que ya hemos visto. Ilustrémolos con un par de ejemplos en los que usaremos comando date para obtener información sobre el día de hoy. Con “o” basta que se cumpla una de las dos condiciones :
#Asignamos a la variable today el día de la semana.
today=$(date +%A)
#Evaluamos el condicional.
if [ $today == «lunes» ] || [ $today == «martes» ]; then
echo «Hoy es lunes o martes.»
fi
Con “y” han de cumplirse ambas condiciones:
#Asignamos a la variable today el día de la semana.
dia=$(date +%e)
mes=$(date +%B)
#Evaluamos el condicional.
if [ $mes == «marzo» ] && [ $dia == «13» ]; then
echo «Hoy es mi cumpleaños.»
fi
El operador && siempre se evalua antes que ||, pero se puede alterar esto agrupando los comando con paréntesis. Por ejemplo:
( [ cond-1 ] || [ cond-2 ] ) && ( [ cond-3 ] || [ cond-4 ] )