Estoy tratando de hacer algo como esto:
case $level in
3)
echo "Level Three"
2)
echo "Level Two"
1)
echo "Level one"
;;
esac
donde si $ level = 3, generaría
Level Three
Level Two
Level One
mientras que si $ nivel = 1, solo generaría
Level One
Pero cuando lo intento, aparece el error syntax error near unexpected token ')'
porque no incluí el ;;
.
Todos los demás idiomas que conozco permiten esto, ¿hay alguna manera de hacerlo en bash? ¿Algún tipo de palabra clave que significa "ahora continúe y haga el siguiente caso como si coincidiera"?
bash
shell-script
Benubird
fuente
fuente
Respuestas:
Debe usar en
;&
lugar de;;
obtener un comportamiento fallido:Consulte la sección Construcciones condicionales de la documentación de bash.
El otro marcador especial es
;;&
, que:;;
siempre es final, no se prueban más patrones.fuente
ksh
y está disponible enksh
,bash
(desde 4.0, 2009) yzsh
(desde 3.1.2, 1997).;;&
es específico de bash.zsh
equivalente debash
's;;&
es;|
(agregado en 4.3.3, 2007).