GoLang控制台Stdin传参问题

问题描述

如题,控制台传值时,通过go run直接运行的时候可以完全获取到传入的命令行参数值,但是通过go build构建成应用之后每行仅能传入1024个字符,多出的部分会被截取掉

问题出现的环境背景及自己尝试过哪些方法

尝试过更改接收方式,NewScanner()NewReader(), NewReaderSize()均用了无果,且百度谷歌无相关解决方案

相关代码

fmt.Println("请输入你的cookie信息:")
reader := bufio.NewReaderSize(os.Stdin, 4 * 1024)
for {
    cookieValue, err := reader.ReadString('\n')
    if err != nil {
        fmt.Println("参数传入错误,请重试:", err)
    }
    if cookieValue == "\n" {
        log.Println("参数不能为空")
    } else {
        fmt.Println(cookieValue)
        break
    }
}

你期待的结果是什么?实际看到的错误信息又是什么?

求排查原因,使stdin输入参数时可突破单行1024字符的限制

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题