Unix/Linux 命令语法

Unix/Linux 命令语法

当 linux 命令列出它们的用法时,通常是这样做的(例如 wget):

wget [option]... [URL]...

根据我对指定命令用法的这种模式的理解,这不是指定模式的常用正则表达式方式,并且对于 wget 命令来说,不强制指定任何选项,并且按照该逻辑,不强制指定任何 URL出色地。我的意思是我可以直接做

wget www.google.com

这会起作用的。所以这些选项不是强制性的。如果选项不是强制性的,因为它们位于方括号中,那么遵循该逻辑指定 URL 也不应该是强制性的,而只是

wget

作为命令也应该起作用。我的问题是-是否有一些文档详细说明了这种指定命令用法的模式?

答案1

通常,语法中 [...] 用于指示可选参数,“|”用于指示用于指示大多数手册页中使用的逻辑或。这取决于谁编写手册页,因为没有权威规定手册页必须读成什么样。然而,更具体地说,对于您的问题,手册页在这种情况下是正确的。您可以通过 -i 开关指定 url,也可以提供 URL 本身。因此,您可以将选项视为“有条件可选”。真的,它可能应该读成类似的内容

      ([option (excluding -i)] (-i file | URL)) 

但你可以看到这很快就会变得复杂。因此,您需要对这些快速描述持保留态度。根据我的经验,命令语法通常是您最不需要担心的。

另外,我在这里挑剔,但你看到的不是正则表达式;)

答案2

我认为没有一个正式的定义(我可能是错的),但从一些手册页的随机抽样来看,这种逻辑似乎没有太多标准。

答案3

我希望它会说

wget [options] URL...
wget [-i|--input-file] file [options] [URL...]

单行概要对于 GNU 手册页来说很常见,其中权威文档是信息文档,并且手册页是一个非常简短的摘要,通常仅描述最常见的选项。

将此与 BSD 工具进行比较,例如柏油和独立工具同步

另一方面,POSIX 实用程序约定说多个概要行应该用于互斥的选项,而该-i选项实际上并不互斥。

答案4

man 7 man-pages(来自 Linux 手册页包)解释了一些您应该注意的约定,即使有一些手册页未能遵循这些约定。

相关内容