codecamp

GoFrame 命令管理-基本概念

参数(Argument)

程序命令行按照顺序进行传递、没有名称标识的数据叫做参数(​Argument​),参数的输入具有顺序性。

选项(Option)

控制程序逻辑的附加输入、并且具有名称标识的数据叫做选项(​Options​),选项名称以​-​或者​--​字符串作为前缀,选项是无序的,可以放置于命令行中任意位置。选项可以带有数据,也可以不带数据。在其他类似的第三方功能组件里面,选项的功能类似于标识(​Flag​)。

此外,根据传统的命令行管理习惯,选项可以设置缩写别名(​Short​),用于简化命令行参数输入。缩写别名往往设定为一个单字母。

选项位置与=号

gcmd​组件支持选项的位置在命令行中是任意的,也就是说,以下命令行选项输入其实意义是一样的:

gf build main.go -a amd64 -o linux -n app -yes
gf -a amd64 -o linux build main.go -yes -n app
gf -yes -n app build -o linux -a amd64 main.go

其中:

  • gf​/​build​/​main.go​是参数,索引分别为 ​0​, ​1​, ​2​;因为参数是有序性的,因此无论命令行怎么修改,这三者的顺序却无法改变
  • a​/​o​/​n​是带有数据的选项,由于是顺序无关的,通过选项名称获取数据,因此可以随意放置位置
  • yes​是不带数据的选项,也可以随意放置位置

命令行的选项与数据之间可以通过空格,也可以通过​=​符号进行连接,如:

gf build main.go -a=amd64 -o=linux -n=app -yes

默认解析规则

由于​gcmd​模块提供了一些包方法用以获取默认的命令行解析规则。在默认规则下,将会自动识别参数与选项。

命令行中带有=符号的场景下

gf build main.go -a=amd64 -o=linux -n=app -yes

在默认规则下:

  • gf​/​build​/​main.go​是参数,索引分别为0​, ​1​,​2​。
  • a​/​o​/​n​/​yes​将会被解析为选项,并且​yes​为无数据选项。

不使用=符号来连接选项参数

gf build main.go -a amd64 -o linux -n app -yes

在默认规则下:

  • gf​/​build​/​main.go​是参数,索引分别为 ​0​, ​1​, ​2​。
  • a​/​o​/​n​/​yes​将会被解析为选项,并且​yes​为无数据选项


GoFrame 命令管理-基本介绍
GoFrame 命令管理-基础方法
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GoFrame 核心组件

GoFrame 核心组件-数据库ORM

GoFrame 模块列表

GoFrame 模块列表-单元测试

GoFrame 模块列表-功能调试

GoFrame WEB服务开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }