Назад | Перейти на главную страницу

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

Как именно вы должны интерпретировать вывод "использования" команд, например, в 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

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

Для всех, кто пытается понять, что означает вывод использования, лучший способ - 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.

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

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

Стоит отметить и другие моменты:

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