如何解释 bash 命令“使用”语法?

如何解释 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
  • 嵌套选项(例如 -R 中的 -H)表示什么?
  • 大写和小写有什么意义吗?
  • 什么时候参数是可选的、必需的?

我需要针对我的一个程序实现一个 telnet 命令行并且我希望能够把它弄直。

答案1

对于任何试图理解使用输出含义的人来说,最好的方法是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.

答案2

首先,虽然有一般惯例,但并未统一适用。

  • 在这种情况下,它表示如果您使用-R(表示“递归”),那么您可以使用-H-L-P。如果您不使用-R,那么这些选项就不相关。
  • 是的,大小写几乎总是很重要。所以通常情况下-h,我们-H会做完全不同的事情。
  • 方括号通常表示选项或参数是“可选的”。(前面带连字符的是“选项”,没有连字符的单词是参数。)如果没有方括号,选项或参数通常是必需的。在您的示例中,“源文件”和“目标目录”都是必需的。“...”表示前一个参数可以重复。

其他值得注意的点:

  • 竖线表示“或”。所以[-fi | -n]表示可以使用-fand/or-i但不能与 结合使用-n
  • 括号中的分组选项表示您可以使用其中任何一个。So[-apvX]表示您可以使用这些选项的任意组合。它们甚至不需要组合在一起。So-a -v -p是一个有效的组合。

相关内容