Как интерпретировать синтаксис использования команды bash?

11

Как именно вы должны интерпретировать вывод команды «использование», например, в bash.

Например, на моей OS X, cpдает мне

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
  • Что обозначают вложенные параметры, такие как -H в -R?
  • Имеет ли значение верхний и нижний регистры?
  • Когда аргумент необязателен, обязательно?

Мне нужно реализовать командную строку telnet против моей программы, и я хотел бы получить это прямо.

raoulsson
источник

Ответы:

15

Для тех, кто пытается понять, что означает использование результатов, лучше всего это сделать man man.

серьезно :-) Потратьте время, чтобы изучить соглашения, это действительно помогает.

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.
   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.
Джастин
источник
+1 удаляя мой пост как лишний.
Уорнер
man manна CentOS 6.6 нет этого раздела; ни версия man manна Mac OS X 10.7.4. Где я могу найти его?
Уайлдкарт
Нашел, это man man-pagesв CentOS и man manpagesв Mac OS X (которая использует команды BSD).
Wildcard
Этот ответ, как и man manкоманда, похоже, не охватывает случаи, когда ввод должен быть одним из элементов в перечислении. Например<env> - must be one of [dev | test | uat | perf | prod]
Аддисон
2

Прежде всего, хотя существуют общие соглашения, они не применяются единообразно.

  • В этом случае, это говорит , что если вы используете -R( с указанием «рекурсия»), то вы можете использовать либо -H, -Lили -P. Если вы не используете -R, то эти параметры не актуальны.
  • Да, дело почти всегда важно. Так обычно -hи -Hделают совершенно разные вещи.
  • Квадратные скобки обычно указывают, что опция или аргумент являются «необязательными». (Вещи с дефисами перед ними являются «опциями», слова без дефисов - аргументами.) Без скобок обычно требуется опция или аргумент. В вашем примере, оба "source_file" и "target_directory" являются обязательными. «...» указывает, что предыдущий аргумент может быть повторен.

Другие моменты, на которые стоит обратить внимание:

  • Вертикальная черта указывает «ИЛИ». Это [-fi | -n]означает, что вы можете использовать либо -fи / или, -iно не в сочетании с -n.
  • Сгруппированные параметры в скобках указывают, что вы можете использовать любой из них. Это [-apvX]означает, что вы можете использовать любую комбинацию этих опций. Их даже не нужно разбивать вместе. Так -a -v -pбудет правильной комбинацией.
Insyte
источник