例如在 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]
表示可以使用-f
and/or-i
但不能与 结合使用-n
。 - 括号中的分组选项表示您可以使用其中任何一个。So
[-apvX]
表示您可以使用这些选项的任意组合。它们甚至不需要组合在一起。So-a -v -p
是一个有效的组合。