Например SYNOPSIS команды apt
apt [-h] [-o=config_string] [-c=config_file] [ -t=target_release] [ -
a=architecture] {list | search | show | update | install
pkg [{=pkg_version_number | /target_release}]... | remove pkg... | upgrade
| full-upgrade | edit-sources | {-v | --version} | {-h | --help}}
https://manpages.debian.org/stretch/apt/apt.8.en.html
Что означают все эти скобки, палки и многоточия или курсив? Есть мнение что синтаксис вообще не документирован и написан чисто от балды.
Ответ
Интересный вопрос. Что-то я ранее не задумывался, т.к. такое описание встречается повсеместно в документации как разных утилит, так и в документации к языкам программирования.
Оказывается, этот синтаксис не только документирован, но и является частью POSIX стандарта, описанного в части Utility Argument Syntax
Кратко по основным моментам:
utility_name [-a] [-b] [-c option_argument]
[-d|-e] [-f[option_argument]] [operand...]
сначала пишется название утилиты, за ней параметры и аргументы
в квадратных скобках указываются необязательные опции и аргументы
аргументы упомянутые в одной группе через разделитель | означают, что эти аргументы взаимно-исключающие и не могут использоваться совместно
троеточие означает, что допустимо несколько этот параметр несколько раз
упоминаний {} в стандарте не вижу, очевидно это сделано для облегчения чтения и записи описания утилиты с множеством взаимоисключающих параметров. По стандарту синопсис должен был быть записан как-то так:
apt [-h] [-o=config_string] [-c=config_file] [-t=target_release] [-a=architecture] list
apt [-h] [-o=config_string] [-c=config_file] [-t=target_release] [-a=architecture] search
apt [-h] [-o=config_string] [-c=config_file] [-t=target_release] [-a=architecture] show
apt [-h] [-o=config_string] [-c=config_file] [-t=target_release] [-a=architecture] update
# и так далее на каждое действие
Комментариев нет:
Отправить комментарий