我正在编写一个可执行脚本(perl),它从命令行获取参数。以下是一些不同的语法,我可以想到:
myPerlScript 10 42
myPerlScript myarg1=10 myarg2=42
myPerlScript -myarg1=10 -myarg2=42
myPerlScript myarg1 10 myarg2 42
myPerlScript -myarg1 10 -myarg2 42
我不喜欢选项1.因为不可能以任意顺序给出参数,或者跳过依赖于默认值的参数。我还想给出2(或3,......)维度参数。以下是一些例子:
myPerlScript myarg 10x20
myPerlScript myarg=10x20
myPerlScript -myarg 10x20
myPerlScript -myarg=10x20
myPerlScript -myarg=10 20
myPerlScript -myarg=10,20
推荐的语法是什么?或者你会推荐什么?它取决于情况和/或脚本用于什么?
答案 0 :(得分:1)
我对perl知之甚少,但在红宝石世界(以及我能观察到的其他unix)中,这似乎是最被接受的成语:
myPerlScript --myarg1 10 --myarg2 42
单击和双击之间有区别。有些命令有两种形式:long(完整命令名)和short(单个字母,为简洁起见)。双短划线用于长形,单用于短形式。现实生活中的例子:
mysql --user root
mysql -u root
我会说使用长字形的短划线会让人大吃一惊。不要那样做:)
我也可以推荐这本优秀的书:Building awesome command-line applications in Ruby。虽然它对你来说价值不大,因为它是红宝石,而不是perl。