文档章节

给go程序添加命令行参数

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 00:47
字数 191
阅读 2
收藏 0

操作系统: CentOS 6.9_x64

go语言版本: 1.8.3

问题描述

需要应用程序根据不同的配置文件访问不同的服务器,希望程序启动时可以指定配置文件。

解决方案

package main

import (
    "os"
    "fmt"
)

func main() {
    argsWithProg := os.Args
    if(len(argsWithProg) < 2) {
        fmt.Println("usage : ",argsWithProg[0]," configFile")
        return
    }
    confFile := os.Args[1]
    fmt.Println(argsWithProg)
    fmt.Println(confFile)
}

运行效果如下:

[root@local t1]# go build argTest1.go
[root@local t1]# ./argTest1
usage :  ./argTest1  configFile
[root@local t1]# ./argTest1 default.xml
[./argTest1 default.xml]
default.xml
[root@local t1]#

讨论

这里只是个简单的示例代码,其它功能请自行扩展。

好,就这些了,希望对你有帮助。

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170610_给go程序添加命令行参数.rst

欢迎补充 

本文转载自:http://www.cnblogs.com/MikeZhang/p/GolangCmdArgs20170610.html

AllenOR灵感
粉丝 11
博文 2635
码字总数 83001
作品 0
程序员
私信 提问
Deep Learning学习笔记(六)详解tf.app.flags()和tf.app.run()的源码

经常在程序中看到有和字样的代码,这两段代码究竟是什么作用,就让我们从分析源码的角度来加深理解! tf.app.flags tf.app.flags主要用于处理命令行参数的解析工作,其实可以理解为一个封装好...

DDM_dl
2017/12/12
0
0
getopt 与 getoptlong

getopt 简介 getopt被用来解析命令行选项参数。 #include <unistd.h>extern char *optarg; //选项的参数指针extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选...

面码
2014/04/29
210
0
Qt5 GUI 开发的应用易受远程代码执行漏洞的影响

外媒 Bleepingcomputer 报导称使用 Qt5 GUI 框架开发的应用程序容易面临远程代码执行漏洞。攻击者通过一个鲜为人知的命令行参数配置自定义协议处理程序,就可利用这个漏洞。 许多开发者并不知...

局长
04/07
2.9K
6
C# winform程序实现开机自启动,并且识别是开机启动还是双击启动

开机启动程序,在很多场合都会用到,尤其是那种在后台运行的程序。 效果图: 以上两幅图都用到了命令行启动程序,为了模拟开机启动或者其他程序调用此程序。 第一幅图:程序启动可以根据不同...

碧水青荷
2018/10/29
0
0
命令行神器 Click 简明笔记

Click Click 是用 Python 写的一个第三方模块,用于快速创建命令行。我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argparse,就好比 re...

funhacks
2017/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部