日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame命令管理-基礎(chǔ)方法

?gcmd?組件提供了常用的基礎(chǔ)包方法,可以按照默認(rèn)的解析規(guī)則,直接獲取命令行參數(shù)及選項(xiàng)。

創(chuàng)新互聯(lián)建站專注于中大型企業(yè)的網(wǎng)站制作、成都網(wǎng)站建設(shè)和網(wǎng)站改版、網(wǎng)站營(yíng)銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計(jì)客戶1000+,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注品牌網(wǎng)站設(shè)計(jì)和互聯(lián)網(wǎng)程序開發(fā),在前進(jìn)的路上,與客戶一起成長(zhǎng)!

常用方法

更多組件方法請(qǐng)參考接口文檔:https://pkg.GO.dev/github.com/gogf/gf/v2/os/gcmd

func Init(args ...string)

func GetArg(index int, def ...string) *gvar.Var
func GetArgAll() []string

func GetOpt(name string, def ...string) *gvar.Var
func GetOptAll() map[string]string

Init自定義命令行

默認(rèn)情況下,?gcmd?組件會(huì)自動(dòng)從?os.Args?解析獲取參數(shù)及數(shù)據(jù)。我們可以通過?Init?方法自定義命令行數(shù)據(jù)。使用示例:

func ExampleInit() {
	gcmd.Init("gf", "build", "main.go", "-o=gf.exe", "-y")
	fmt.Printf(`%#v`, gcmd.GetArgAll())

	// Output:
	// []string{"gf", "build", "main.go"}
}

GetArg*參數(shù)獲取

參數(shù)獲取可以通過以下兩個(gè)方法:

  • ?GetArg?方法用以獲取默認(rèn)解析的命令行參數(shù),參數(shù)通過輸入索引位置獲取,索引位置從?0?開始,但往往我們需要獲取的參數(shù)是從?1?開始,因?yàn)樗饕?0?的參數(shù)是程序名稱。
  • ?GetArgAll?方法用于獲取所有的命令行參數(shù)。

使用示例:

func ExampleGetArg() {
	gcmd.Init("gf", "build", "main.go", "-o=gf.exe", "-y")
	fmt.Printf(
		`Arg[0]: "%v", Arg[1]: "%v", Arg[2]: "%v", Arg[3]: "%v"`,
		gcmd.GetArg(0), gcmd.GetArg(1), gcmd.GetArg(2), gcmd.GetArg(3),
	)

	// Output:
	// Arg[0]: "gf", Arg[1]: "build", Arg[2]: "main.go", Arg[3]: ""
}

func ExampleGetArgAll() {
	gcmd.Init("gf", "build", "main.go", "-o=gf.exe", "-y")
	fmt.Printf(`%#v`, gcmd.GetArgAll())

	// Output:
	// []string{"gf", "build", "main.go"}
}

GetOpt*選項(xiàng)獲取

選項(xiàng)獲取可以通過以下兩個(gè)方法:

  • ?GetOpt?方法用以獲取默認(rèn)解析的命令行選項(xiàng),選項(xiàng)通過名稱獲取,并且選項(xiàng)的輸入沒有順序性,可以輸入到任意的命令行位置。當(dāng)給定名稱的選項(xiàng)數(shù)據(jù)不存在時(shí),返回?nil?。注意判斷不帶數(shù)據(jù)的選項(xiàng)是否存在時(shí),可以通過?GetOpt(name) != nil?方式。
  • ?GetOptAll?方法用于獲取所有的選項(xiàng)。

使用示例:

func ExampleGetOpt() {
	gcmd.Init("gf", "build", "main.go", "-o=gf.exe", "-y")
	fmt.Printf(
		`Opt["o"]: "%v", Opt["y"]: "%v", Opt["d"]: "%v"`,
		gcmd.GetOpt("o"), gcmd.GetOpt("y"), gcmd.GetOpt("d", "default value"),
	)

	// Output:
	// Opt["o"]: "gf.exe", Opt["y"]: "", Opt["d"]: "default value"
}

func ExampleGetOptAll() {
	gcmd.Init("gf", "build", "main.go", "-o=gf.exe", "-y")
	fmt.Printf(`%#v`, gcmd.GetOptAll())

	// May Output:
	// map[string]string{"o":"gf.exe", "y":""}
}

GetOptWithEnv特性

func GetOptWithEnv(key string, def ...interface{}) *gvar.Var

該方法用于獲取命令行中指定的選項(xiàng)數(shù)值,如果該選項(xiàng)不存在時(shí),則從環(huán)境變量中讀取。但是兩者的名稱規(guī)則會(huì)不一樣。例如:?gcmd.GetOptWithEnv("gf.debug")?將會(huì)優(yōu)先去讀取命令行中的?gf.debug?選項(xiàng),當(dāng)不存在時(shí),則會(huì)去讀取?GF_DEBUG?環(huán)境變量。

需要注意的是參數(shù)命名轉(zhuǎn)換規(guī)則:

  • 環(huán)境變量會(huì)將名稱轉(zhuǎn)換為大寫,名稱中的?.?字符轉(zhuǎn)換為?_?字符。
  • 命令行中會(huì)將名稱轉(zhuǎn)換為小寫,名稱中的?_?字符轉(zhuǎn)換為?.?字符。

使用示例:

func ExampleGetOptWithEnv() {
	fmt.Printf("Opt[gf.test]:%s\n", gcmd.GetOptWithEnv("gf.test"))
	_ = genv.Set("GF_TEST", "YES")
	fmt.Printf("Opt[gf.test]:%s\n", gcmd.GetOptWithEnv("gf.test"))

	// Output:
	// Opt[gf.test]:
	// Opt[gf.test]:YES
}

新聞標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame命令管理-基礎(chǔ)方法
鏈接地址:http://m.5511xx.com/article/copschh.html