#linux #ubuntu #debian
Например 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 Что означают все эти скобки, палки и многоточия или курсив? Есть мнение что синтаксис вообще не документирован и написан чисто от балды.
Ответы
Ответ 1
Интересный вопрос. Что-то я ранее не задумывался, т.к. такое описание встречается повсеместно в документации как разных утилит, так и в документации к языкам программирования. Оказывается, этот синтаксис не только документирован, но и является частью 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 # и так далее на каждое действие
Комментариев нет:
Отправить комментарий