我想在我的Go程序中使用tf
。像这样:
func main() {
cmd := exec.Command("tf", `workspace`, `-new`, `testsssss`, `-collection:http://xxx.xxx.xxx:8080/tfs/new/`, `-login:Administrator,op@ms2019`)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
panic(err)
}
}
但是我总是得到结果:
错误:连接到TFS服务器时访问被拒绝 http://xxx.xxx.xxx:8080/(以管理员身份认证)
当我在终端中运行命令时,它会起作用:
tf工作区-new testsss-集合:http://xxx.xxx.xxx:8080/tfs/new/ -login:Administrator,op @ ms2019
我试图将其写入外壳文件,然后使用exec调用它,但仍然失败。
答案 0 :(得分:1)
我试图将其写入外壳文件,然后使用exec调用它,但仍然失败。
如果您尝试手动执行该Shell文件怎么办?
您可能还希望转储HTTP通信并找出任何明显的区别。可以使用tcpdump:tcpdump -A -vvv port 8080
该问题还可能与您的子进程的stdin连接到/ dev / null有关,因此,如果二进制文件希望读取任何内容,则该行为与从shell手动运行该行为有所不同(其中子进程继承了您外壳程序的标准输入)。