Se eu tentar executar a;;b
no sh, recebo este erro:
sh: <number>: Syntax error: ";;" unexpected
Se eu tentar a;;;b
, recebo o mesmo erro, não em ;;;
vez de ;;
, então acho que isso ;;
significa alguma coisa, embora eu não saiba o que isso significa.
Aqui está um exemplo:
$ 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
Aqui você pode ver que quando eu uso em ; ;
vez do ;;
erro é diferente, referente ao fato de eu ter usado ;
sem um comando antes. ;;
parece ser um operador diferente, embora eu não saiba ao que se aplica.
;;
, e não encontrei um dupe aqui.Respostas:
;;
separa instruções em uma construçãocase
...esac
em shells POSIX:Para descobrir um comando, você pode executar
man that-command
. Se o seu pager forless
, você pode pesquisar na página de manual pressionando /.Aqui, você executaria
man sh
e procuraria;;
. Alguns shells suportam outros operadores para separarcase
instruções (como;&
emksh93
/zsh
/bash
/mksh
,&|
emzsh
/mksh
,;;&
inbash
).fonte
less
, às vezes é útil para$ man bash|grep -C1 ';;'
(
antesa)
eb)
, e você precisa;;
depoiscmd4
(
fato, mas ainda não precisava do;;
antesesac
(embora não tenha prejudicado).;;
foi opcional.