Запустите команду оболочки в GoLang в Windows CMD - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь запустить Cloudfoundry CF Client из моего GoLang. Команда cf login обычно не выполняется в моем терминале git-bash / терминале cygwin. Правильно выполняется только в командной строке (CMD.exe). Поэтому я всегда выполняю команду cf login только из моего CMD.exe.

Теперь я попытался выполнить команду из 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.

Я получаю ту же ошибку, когда выполняю cf login от cygwin. Ниже мой код Go

    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 намеренно не вызывает системную оболочку

Обратите внимание, что примеры в этом пакете предполагают систему Unix. Они могут не работать в Windows и не запускаться на игровой площадке Go, используемой golang.org и godoc.org.

Я думаю, что пакет exec сам по себе не поддерживает оболочку Windows

...