sh で ;; は何をしますか?

sh で ;; は何をしますか?

a;;bsh で実行しようとすると、次のエラーが発生します。

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

試してみると、ではなく というa;;;b同じエラーが発生するので、それが何を意味するのかはわかりませんが、何か意味があると思います。;;;;;;;

次に例を示します。

$ 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

; ;ここで、 の代わりにを使用するとエラーが異なることがわかります。これは、以前にコマンドなしで;;を使用したという事実に関連しています。は別の演算子のようですが、それが何に適用されるかはわかりません。;;;

答え1

;;casePOSIX シェルの...構造内のステートメントを区切りますesac

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

コマンドについて調べるには、 を実行しますman that-command。ポケベルが の場合はless、 を押してマニュアル ページ内を検索できます/

ここでは、 を実行してman shを検索します;;。一部のシェルでは、caseステートメントを区切るための他の演算子をサポートしています ( ;&in ksh93/ zsh/ bash/ mksh&|in zsh/ mksh;;&in などbash)。

関連情報