O que faz ;; fazer em sh?

28

Se eu tentar executar a;;b em 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 ;; 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 de ;; o erro é diferente, relativo ao fato de que eu usei ; sem um comando antes. ;; parece ser um operador diferente, embora eu não saiba a que se aplica.

    
por EKons 18.04.2017 / 12:48

1 resposta

47

;; separa instruções em uma construção case ... esac em shells POSIX:

case foo in (a) cmd1; cmd2 ;; (b) cmd3; cmd4; esac

Para saber mais sobre um comando, você pode executar man that-command . Se o seu pager for less , você poderá pesquisar na página man pressionando / .

Aqui, você executaria man sh e pesquisaria ;; . Alguns shells suportam outras operadoras para separar as declarações case (como ;& em ksh93 / zsh / bash / mksh , &| em zsh / mksh , ;;& in bash ).

    
por 18.04.2017 / 12:49

Tags