Сохранить Stdout в переменную при использовании StdoutPipe - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь использовать команду Go для запуска команд, содержащих канал, а затем сохранить выходные данные команды в переменной, которая будет использоваться позже.Приведенный ниже код извлечет имя файла с последним файлом, который будет загружен в Amazon S3, и выведет его на терминал.Суть в том, что имя файла может быть использовано позже для генерации элемента.к переменной.

Кто-нибудь знает, с чего начать?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете назначить любое io.Writer на Stdout.Поэтому, если вы хотите получить выходные данные, сохраненные в переменной, самый простой способ может быть следующим:

out := &bytes.Buffer{}
c4.Stdout = out

Затем выходные данные сохраняются в out, что можно получить, вызвав out.Bytes() или out.String() в зависимости отВы хотите []byte или string.

. Чтобы вывод выводился на экран, io.MultiWriter может помочь.Он пишет всем данным писателям, когда вызывается запись.Таким образом, вы можете сделать это:

out := &bytes.Buffer{}
c4.Stdout = io.MultiWriter(out, os.Stdout)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...