a;;b
sh で実行しようとすると、次のエラーが発生します。
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
;;
case
POSIX シェルの...構造内のステートメントを区切ります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
)。