4

我对如何在脚本中编写参数和参数的使用文本感到困惑。无论我在哪里看,它总是不同的。特别是参数的描述方式及其语法各不相同。

例如,用于需要带有文件名的标志的参数

$0 -f <filename>
$0 [-f filename]
$0 [-f] <filename>
$0 [-f] [filename]
$0 [-f <filename>]
$0 [-f] [<filename>]

例如用于可选参数(-f、-g、-h)

$0 [-fgh]
$0 [<optional>]
$0 [-[fgh]]
$0 [-<fgh>]
$0 -fgh
$0 -[fgh]

等等

这可能是一个小问题,但很烦人,因为语法总是不同的,有时它实际上意味着不同的东西,但你看不到它,因为它不遵循任何约定。您对此有何看法,以适当的语法编写用法文本的最佳实践是什么?

4

1 回答 1

7

POSIX为实用程序参数语法定义了一个约定(奇怪的是,他们似乎忘记在]后面的[分组之间放置空格,就像他们在实际的实用程序描述页面上所做的那样(例如commandfind)):

  • “包含在 ' [' 和 ' ]' 符号中的参数或选项参数是可选的,可以省略。” 因此,“未封闭”(“已封闭?”)参数是强制性的。
  • “通常,需要用实际值替换的参数的名称带有嵌入的下划线。或者,参数显示如下:

    <parameter name>
    

    "

  • |“由 ' ' 竖线符号分隔的参数是互斥的。”
  • “省略号(“ ...”)用于表示允许出现一个或多个选项或操作数。
于 2013-06-26T09:24:38.980 回答