Comparación de strings en Bash
Hoy se me ocurrió que estaría chido mostrar como se hace una comparación de strings en Bash pero de forma práctica; dado que, en Bash, tendemos a ser muy estructurados y, a veces, poco eficientes.
Supongamos que quieres ver si una variable es alguna de 5 opociones. Quieres comparar el valor de la variable con todas y, si no es una de esas, pues quejarte:
#!/usr/bin/env bash
set extglob
fruta='manzana'
if [[ $fruta == @(membrillo|ciruela|mango|durazno|níspero) ]]; then
echo "Ah, pues, en mi pueblo, hay árboles de $fruta!"
else
echo "No, la neta, aquí no se produce la fruta $fruta..."
fi
Nota
Es muy importante que extglob esté activo para que funcione este tipo de expansión.
Consejo
Usa extglob para simplificar comparaciones múltiples y hacer el código más legible.
Está muy chido eso porque te ahorra un montón de elseif of case.
Para más información, chécate esta parte del manual de Bash: https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html#Pattern-Matching