編寫最簡單的命令行工具
用戶輸入bufio
使用go語言編寫最簡單的命令行工具
mkdir hello-cli-demo
cd hello-cli-demo
# 查看環境變量
go env
go mod初始化
go mod init gitcode.com/m
打開vscode,創建main.go
package mainimport ("fmt""bufio""os"
)func main() {fmt.Println("你的名字是什么?")reader := bufio.NewReader(os.Stdin)text, _ := reader.ReadString('\n')fmt.Printf("你的名字是: %s",text)
}
運行,go run main.go
你的名字是什么?
小紅
你的名字是: 小紅
命令行參數os.Args
package mainimport ("fmt"_ "bufio""os"
)func main() {var s, sep stringfor i:= 1; i< len(os.Args); i++ {s += sep + os.Args[i]sep = " "}fmt.Println(s)
}
運行go build
$ .\m.exe 小明 小紅
小明 小紅
或者
$ go build . && m 我叫小明
我叫小明
代碼優化
func main() {s, sep := "", ""for _, arg := range os.Args[1:] {s += sep + argsep = " "}fmt.Println(s)
}
代碼優化
package mainimport ("fmt""os""strings"
)func main() {fmt.Println(strings.Join(os.Args[1:]," "))
}
參考資料
GO111MODULE 是個啥?