Qu'est-ce que ;; faire dans sh?

Si j'essaie d'exécuter a;;b dans sh, j'obtiens cette erreur:

 sh: <number>: Syntax error: ";;" unexpected 

Si j'essaye a;;;b j'obtiens la même erreur, pas ;;; au lieu de ;; , donc je pense que ;; signifie quelque chose, même si je ne sais pas ce que cela signifie.

Voici un exemple:

 $ 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 

Ici vous pouvez voir que quand j'utilise ; ; ; ; au lieu de ;; l'erreur est différente, en rapport avec le fait que j'ai utilisé ; sans command avant. ;; semble être un opérateur différent, même si je ne sais pas à quoi il s'applique.

;; sépare les déclarations dans un caseesac construit dans des coquilles POSIX:

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

Pour connaître une command, vous pouvez exécuter man that-command . Si votre pageur est less , vous pouvez effectuer une search dans la page de manuel en appuyant sur / .

Ici, vous courriez l' man sh et searchz ;; . Certains shells supportent les autres opérateurs pour séparer les instructions de case (comme ;& dans ksh93 / zsh / bash / mksh , &| dans zsh / mksh , ;;& dans bash ).