В небольшом приложении Go я запускаю команду с помощью пакета os / exec.В настоящее время я прохожу через вывод журнала, установив:
cmd.Stderr = os.Stderr
cmd.Stdout = os.Stdout
err := cmd.Run()
Что я хотел бы сейчас сделать, это получить вывод журнала (в частности, 2-ю последнюю строку) и сохранить его в переменной.Я думал, что это будет так же просто, как изменить err := cmd.Run()
на cmdOutput, err := cmd.Output()
и синтаксический анализ строки журнала для искомого значения - однако это вызывает ошибку, говорящую exec: Stdout already set
.
Я мог бы удалитьзначение cmd.Stdout
, но мне все равно хотелось бы, чтобы остальная часть вывода журнала проходила через текущий процесс так же, как сейчас.
У меня есть контроль над программой, которую я передаю какну, так что если есть лучший способ отправить фрагмент JSON из дочерней команды / процесса в родительское приложение Go, кроме записи файла на диск, это тоже подойдет.
Любая помощь будет принята с благодарностью -Я немного скраб голанга ...