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

时间:2013-06-26 08:14:23

标签: shell text conventions

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

e.g。用于需要带文件名

的标志的参数
$0 -f <filename>
$0 [-f filename]
$0 [-f] <filename>
$0 [-f] [filename]
$0 [-f <filename>]
$0 [-f] [<filename>]

e.g。用于可选参数(-f,-g,-h)

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

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

1 个答案:

答案 0 :(得分:6)

POSIX定义了一个convention for utility argument syntax(奇怪的是,他们似乎忘记在][组之间放置空格,就像它们在实际的实用程序描述页面上一样(例如{ {3}}和command)):

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

    <parameter name>
    

  • “以'|'垂直条记法分隔的参数是互斥的。”
  • “省略号(”...“)用于表示允许出现一个或多个选项或操作数。”