在windows CMD中的GoLang中运行shell命令
我正在尝试从我的GoLang执行cloudfoundry CF客户端。cf login命令通常不会在my git bash终端/cygwin终端中执行。它只能在命令提示符下正确执行(CMD.exe)。所以我总是只从CMD.exe执行在windows CMD中的GoLang中运行shell命令,go,cloud-foundry,Go,Cloud Foundry,我正在尝试从我的GoLang执行cloudfoundry CF客户端。cf login命令通常不会在my git bash终端/cygwin终端中执行。它只能在命令提示符下正确执行(CMD.exe)。所以我总是只从CMD.exe执行cf login命令 现在我尝试从GoLang执行命令,发现它是在cygwin/git-bash模式下执行的,并给出以下错误作为输出 API endpoint: https://api.sys-pcf.cf.MYCOMPANY.com Authenticating..
cf login
命令
现在我尝试从GoLang执行命令,发现它是在cygwin/git-bash模式下执行的,并给出以下错误作为输出
API endpoint: https://api.sys-pcf.cf.MYCOMPANY.com
Authenticating...
Credentials were rejected, please try again.
Authenticating...
Credentials were rejected, please try again.
Authenticating...
Credentials were rejected, please try again.
当我从cygwin执行cf登录时,我会遇到相同的错误。下面是我的密码
cf :="cf"
login := "login"
sso := "--sso"
apiFlag := "-a"
command := exec.Command(cf,login,sso,apiFlag,foundationUrl)
stdout, err := command.Output()
if err != nil {
fmt.Println("Error")
}
fmt.Print(string(stdout))
请告诉我如何以windows样式或通过命令提示符执行这些命令
os.exec包链接告诉我们
与C和其他语言的“系统”库调用不同,os/exec包故意不调用系统shell
请注意,此包中的示例假定为Unix系统。它们不能在Windows上运行,也不能在golang.org和godoc.org使用的围棋场上运行
我认为exec包本身不支持windows shell您是如何运行代码的?我最好的猜测是您的本机控制台和cygwin不共享相同的路径,因此客户端无法连接。因此,如果您从cygwin控制台运行golang程序,它将面临相同的问题。或者,如果您知道为什么客户端只能在本机shell中正确执行,那么另一个解决方案是解决这个问题。
fmt.Println(err)
在这里不起作用,因为命令执行不会发生任何错误,然而,cf登录
被拒绝,有很多讨论正在进行,以确定cf登录为什么不能在CYGWIN模式下工作。这方面没有具体的解决办法。它只在命令提示符下工作。因此,我们必须指示GoLang在命令提示符样式中执行此命令。cf是什么?cf登录“cf”不被识别为内部或外部命令、可操作程序或批处理文件。cf是cloud foundry CLI工具