golang编程实练-使用os.Args实现命令行参数传递

main.go:

package main

import (
    "fmt"
    "os"
    "strings"
)

const (
    INPUT = iota + 1
    OUTPUT
)

const usage = `
  NAME:
     demo - A demo program to show command arguments.

  USAGE:
     demo <input_file> <output_file>
`

func main() {
    if len(os.Args) < 3 {
      println(usage)
      return
    }
    input := strings.TrimSpace(os.Args[INPUT])
    output := strings.TrimSpace(os.Args[OUTPUT])
    if input == "" || output == "" {
      println(usage)
      return
    }
    fmt.Printf("args, input:%v, output:%v
", input, output)
    // do something

    println("done.")
}

运行:

PS > go build -o demo.exe

PS > ./demo.exe

NAME:
   demo - A demo program to show command arguments.

USAGE:
   demo <input_file> <output_file>

PS > ./demo.exe a.txt b.txt
args, input:a.txt, output:b.txt
done.

说明:

  1. 例子中直接使用golang主函数入口的os.Args,实现一个最简单的命令行参数传递,可以对应简单的场景需要。
  2. os.Args第一个参数(数组索引:0)是应用的名称
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共1条

请登录后发表评论