En los lenguajes imperativos populares, las sentencias de conmutación generalmente "caen" al siguiente nivel una vez que se ha emparejado una declaración de caso.Declaración de caso fallthrough?
Ejemplo:
int a = 2;
switch(a)
{
case 1:
print "quick ";
case 2:
print "brown ";
case 3:
print "fox ";
break;
case 4:
print "jumped ";
}
imprimiría "zorro marrón".
Sin embargo, el mismo código en bash
A=2
case $A in
2)
echo "QUICK"
;&
2)
echo "BROWN"
;&
3)
echo "FOX"
;&
4)
echo "JUMPED"
;&
esac
sólo se imprime "BROWN"
¿Cómo hacer que la declaración de caso en bash "caen a través" de las condiciones restantes como el primer ejemplo?
(edit: Bash versión 3.2.25, la, declaración & (from wiki) da lugar a un error de sintaxis)
en marcha:
test.sh:
#!/bin/bash
A=2
case $A in
1)
echo "QUICK"
;&
2)
echo "BROWN"
;&
3)
echo "FOX"
;&
esac
Da:
./test.sh: línea 6: error de sintaxis cerca del token inesperado
;' ./test.sh:
; & '
line 6:
error Agregado para; & – Resorath
Relacionados (pero no duplicar) pregunta: [Switch case with fallthrough?] (Http://stackoverflow.com/q/5562253) (con respecto al operador '|' para separar múltiples patrones en una expresión 'case '). – TachyonVortex