0

我正在编写一个可执行脚本(perl),它从命令行获取参数。这是一些不同的语法,我能想到:

  1. myPerlScript 10 42
  2. myPerlScript myarg1=10 myarg2=42
  3. myPerlScript -myarg1=10 -myarg2=42
  4. myPerlScript myarg1 10 myarg2 42
  5. myPerlScript -myarg1 10 -myarg2 42

我不喜欢选项 1。因为不可能以任意顺序给出参数,或者跳过依赖默认值的参数。我还想给出 2(或 3,...)维参数。这里再举一些例子:

  1. myPerlScript myarg 10x20
  2. myPerlScript myarg=10x20
  3. myPerlScript -myarg 10x20
  4. myPerlScript -myarg=10x20
  5. myPerlScript -myarg=10 20
  6. myPerlScript -myarg=10,20

推荐的语法是什么?或者你会推荐什么?它是否取决于情况和/或脚本的用途?

4

1 回答 1

1

我对 perl 了解不多,但在 ruby​​ 世界(以及我可以观察到的其他 unix)中,这似乎是最被接受的习语:

myPerlScript --myarg1 10 --myarg2 42

单破折号和双破折号是有区别的。一些命令有两种形式:长(完整的命令名称)和短(单个字母,为简洁起见)。双破折号用于长格式,单破折号用于短格式。现实生活中的例子:

mysql --user root
mysql -u root

我会说使用长格式的单破折号会让人们感到惊讶。不要那样做:)

我也可以推荐这本优秀的书:Building awesome command-line applications in Ruby。尽管它对您的价值较小,因为它是在 ruby​​ 中,而不是在 perl 中。

于 2012-09-02T14:58:59.643 回答