Когда команды Linux перечисляют свое использование, они обычно делают это следующим образом (например, wget):
wget [option]... [URL]...
Насколько я понимаю этот шаблон указания использования команды, это не обычный способ регулярного выражения для указания шаблонов, и для команды wget говорится, что не обязательно указывать какие-либо параметры, и по этой логике не обязательно указывать какой-либо URL. Я имею в виду, что я могу напрямую сделать
wget www.google.com
и это сработает. Так что параметры не являются обязательными. Если параметры не являются обязательными, поскольку они заключены в квадратные скобки, то, следуя этой логике, указание URL также не должно быть обязательным и просто
wget
как команда, должно работать также. Мой вопрос - есть ли какой-то документ, где подробно описан этот шаблон указания использования команды?
решение1
Обычно в большинстве страниц руководства используется синтаксис, в котором [...] используется для указания необязательных аргументов, а '|' используется для указания логического ИЛИ. Это зависит от того, кто пишет страницу руководства, поскольку нет органа, который диктует, как должна выглядеть страница руководства. Однако, что касается вашего вопроса, в этом случае страница руководства читается как true. Вы можете либо указать URL с помощью переключателя -i, либо предоставить сам URL. Таким образом, вы можете рассматривать параметры как «условно необязательные». На самом деле это, вероятно, должно выглядеть как-то так:
([option (excluding -i)] (-i file | URL))
но вы можете видеть, как это очень быстро усложнится. Поэтому вам нужно воспринимать краткие описания с долей скепсиса. По моему опыту, синтаксис команд обычно является наименьшей из ваших забот.
И, конечно, я придираюсь, но то, что вы видите, не является регулярным выражением ;)
решение2
Я не думаю, что для этого существует формальное определение (я могу ошибаться), но, судя по случайной выборке некоторых страниц руководства, для этой логики, похоже, не существует и какого-то особого стандарта.
решение3
Я бы ожидал, что он скажет
wget [options] URL...
wget [-i|--input-file] file [options] [URL...]
Единая строка синопсиса довольно обычна для страниц руководства GNU, где авторитетной документацией являетсяинформационная документация, а страница руководства представляет собой очень краткое резюме, часто описывающее только наиболее распространенные параметры.
Сравните это с такими инструментами BSD, каксмолаи независимый инструментrsync.
С другой стороны,Соглашения об утилитах POSIXговорят, что для взаимоисключающих вариантов следует использовать несколько строк синопсиса, а -i
на самом деле этот вариант не является взаимоисключающим.
решение4
man 7 man-pages
(из пакета man-pages Linux) объясняет некоторые соглашения, о которых вам следует знать, даже если некоторые man-страницы не соответствуют этим соглашениям.