【发布时间】:2023-01-19 16:37:44
【问题描述】:
我正在构建一个 cli 并遇到以下情况。我从 go 调用一个 bash 命令,提示用户登录,然后在登录后打印一个令牌。例如:
cmd := exec.Command("vault", "login", "-method=okta", "-format=json", "username=abc")
cmd.Stdin = os.Stdinout
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
_ = cmd.Run()
这很好地流式传输输出,但我无法在用户登录后从命令的输出中解析令牌。我试图将 cmd.Run() 包装到管道函数中,例如 this this 和 this 但是在这两种情况下,返回的输出都是空的。有任何想法吗?
谢谢!
【问题讨论】:
-
没有
os.Stdinout所以代码似乎输入错误。
标签: go