La sentencia if-else es una sentencia para la toma de decisiones de awk. Presenta la siguiente forma:
if (condición) cuerpo-then [else cuerpo-else]
Aquí condición es una expresión que controla qué es lo que realizará el resto de la sentencia. Si la condición es verdad, entonces se ejecuta el cuerpo-then; sino se ejecuta el cuerpo-else (asumiendo que esté presente la clásula else). La parte else de la sentencia es opcional. La condición se considera falsa si su valor es 0 o una cadena nula, sino se considerará verdadera.
Aquí se presenta un ejemplo:
if (x % 2 == 0) print "x es par"
else
print "x es impar"
En este ejemplo, si la expresión x%2 == 0 es cierta (es decir, el valor de x es divisible entre 2), entonces se ejecuta la primera sentencia print, sino se ejecuta la segunda sentencia print.
Si el else aparece en la misma línea que el cuerpo-then, y el cuerpo-then no es una sentencia compuesta (no aparece entre llaves), entonces un punto y coma debe separar el cuerpo-then del else. Para ilustrar esto veamos el siguiente ejemplo:
awk '{ if (x % 2 == 0) print "x is even"; else print "x is odd" }'
Si olvidas el ‘;’ awk no será capaz de realizar el parse de la sentencia, y obtendrás un error de sintáxis. De todas formas es una mala práctica escribir la sentencia else de esta forma, ya que puede llevar al lector a confusión.
0 Comentarios