Shell脚本:为参数编写用法文本的约定?

Mal*_*vin 4 shell text conventions

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

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

$0 -f <filename>
$0 [-f filename]
$0 [-f] <filename>
$0 [-f] [filename]
$0 [-f <filename>]
$0 [-f] [<filename>]
Run Code Online (Sandbox Code Playgroud)

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

$0 [-fgh]
$0 [<optional>]
$0 [-[fgh]]
$0 [-<fgh>]
$0 -fgh
$0 -[fgh]
Run Code Online (Sandbox Code Playgroud)

等等

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

l0b*_*0b0 7

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

  • " ['和' ]'表示法中包含的参数或选项参数是可选的,可以省略.因此,"un-enclosed"("declosed?")参数是强制性的.
  • "通常,需要用实际值替换的参数名称会显示嵌入的下划线.或者,参数显示如下:

    <parameter name>
    
    Run Code Online (Sandbox Code Playgroud)

    "

  • "由' |'竖条表示法分隔的参数是相互排斥的."
  • "省略号(" ...")用于表示允许选项或操作数的一次或多次出现."