Was macht ;; in sh?

Was macht ;; in sh?

Wenn ich versuche, es in sh auszuführen a;;b, erhalte ich diesen Fehler:

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

Wenn ich es versuche, a;;;berhalte ich denselben Fehler, nicht ;;;anstelle von ;;, also denke ich, dass das ;;etwas bedeutet, obwohl ich nicht weiß, was es bedeutet.

Hier ist ein Beispiel:

$ 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

Hier können Sie sehen, dass der Fehler anders ist, wenn ich ; ;stattdessen verwende. ;;Dies hängt damit zusammen, dass ich ;zuvor ohne Befehl verwendet habe. ;;Es scheint sich um einen anderen Operator zu handeln, obwohl ich nicht weiß, worauf er sich bezieht.

Antwort1

;;trennt Anweisungen in einer case...- esacKonstruktion in POSIX-Shells:

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

Um mehr über einen Befehl zu erfahren, können Sie ausführen man that-command. Wenn Ihr Pager ist less, können Sie innerhalb der Manpage suchen, indem Sie drücken /.

Hier würden Sie ausführen man shund nach suchen ;;. Einige Shells unterstützen andere Operatoren zum Trennen casevon Anweisungen (wie ;&in ksh93/ zsh/ bash/ mksh, &|in zsh/ mksh, ;;&in bash).

verwandte Informationen