Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Каков синтаксис описаний (synopsis) команд?

#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 # и так далее на каждое действие

Комментариев нет:

Отправить комментарий