Почему первый шаблон в выражении 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 * /