Si intento ejecutar a;;b
en sh, me sale este error:
sh: <number>: Syntax error: ";;" unexpected
Si lo intento a;;;b
, obtengo el mismo error, no en ;;;
lugar de ;;
, así que creo que eso ;;
significa algo, aunque no sé qué significa.
Aquí hay un ejemplo:
$ echo A;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A;;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A; ;echo B
sh: 1: Syntax error: ";" unexpected
Aquí puede ver que cuando uso en ; ;
lugar del ;;
error es diferente, relacionado con el hecho de que lo usé ;
sin un comando antes. ;;
parece ser un operador diferente, aunque no sé a qué se aplica.
;;
, y no he encontrado un engaño aquí.Respuestas:
;;
separa las declaraciones en unacase
...esac
construcción en shells POSIX:Para obtener información sobre un comando, puede ejecutar
man that-command
. Si su buscapersonas esless
, puede buscar dentro de la página de manual presionando /.Aquí, correría
man sh
y buscaría;;
. Algunos shells admiten otros operadores para separarcase
declaraciones (como;&
enksh93
/zsh
/bash
/mksh
,&|
inzsh
/mksh
,;;&
inbash
).fuente
less
, a veces es útil$ man bash|grep -C1 ';;'
(
antesa)
yb)
, y necesitas;;
despuéscmd4
(
hecho, pero aún no necesitaba el;;
antesesac
(aunque no perjudicó).;;
era opcional.