Почему первый шаблон в выражении case не может быть множественным шаблоном?

Стандартное описание case В заявлении говорится:

The format for the case construct is as follows:

case word in
  [(]pattern1) compound-list;;
  [[(]pattern[ | pattern] ... ) compound-list;;] ...
  [[(]pattern[ | pattern] ... ) compound-list]
esac

The ";;" is optional for the last compound-list.

Почему не может быть pattern1 быть несколько шаблонов, а? Это кажется довольно произвольным, хотя я почти уверен, что не должно быть.

Спасибо!

1 ответ

Я думаю, что вы неправильно понимаете, что они говорят. Грамматика на странице, на которую вы ссылаетесь, не показывает такого различия:

case_clause: Case WORD перевод строки в перевод строки case_list    Esac
                 | Случай WORD перевод строки в перевод строки case_list_ns Esac
                 | Дело WORD перевод строки в перевод строки Esac;
case_list_ns: case_list case_item_ns
                 |           case_item_ns;
case_list: case_list case_item
                 |           case_item;
case_item_ns:     pattern ')'               linebreak
                 | шаблон ')' составной_разрыв строки
                 | '(' pattern ')' перевод строки
                 | '(' Шаблон ')' compound_list LINEBREAK;
case_item:     pattern ')' перенос строки DSEMI перенос строки
                 | шаблон ')' compound_list DSEMI LINEBREAK
                 | '(' pattern ')' перенос строки DSEMI перенос строки
                 | '(' pattern ')' component_list Разрыв строки DSEMI;
pattern:             WORD         /* Применить правило 4 */
                 | шаблон '|' СЛОВО / * Не применять правило 4 * /
Другие вопросы по тегам