РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1442 of 1593 menu

Метод exec.Cmd.Output

Метод exec.Cmd.Output выполняет команду, которую представляет объект exec.Cmd, и возвращает ее стандартный вывод в виде среза байтов ([]byte). При этом метод ожидает завершения команды и возвращает ошибку, если выполнение завершилось неудачно. Важно: метод также собирает вывод команды в буфер и делает его доступным для чтения, но не возвращает данные, записанные в стандартный поток ошибок.

Синтаксис

cmd.Output()

Метод не принимает аргументов. Он возвращает два значения: срез байтов ([]byte) с содержимым стандартного вывода и ошибку (error). Если команда завершилась с ненулевым кодом возврата, ошибка будет типа *exec.ExitError.

Пример

Давайте выполним команду echo с аргументом "Hello, World!" и получим ее вывод:

package main import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("echo", "Hello, World!") out, err := cmd.Output() if err != nil { fmt.Println("Error:", err) return } fmt.Printf("%q", out) }

Результат выполнения кода:

"Hello, World!\n"

Пример

Выполним команду ls для просмотра содержимого текущей директории и выведем результат:

package main import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("ls", "-l") out, err := cmd.Output() if err != nil { fmt.Println("Error:", err) return } fmt.Printf("%s", out) }

Результат выполнения кода (зависит от содержимого директории):

"total 0\n-rw-r--r-- 1 user user 0 Mar 10 10:00 file.txt\n"

Пример

Если команда завершается с ошибкой, метод вернет ошибку. Давайте вызовем несуществующую команду:

package main import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("nonexistent-command") out, err := cmd.Output() if err != nil { fmt.Println("Error:", err) return } fmt.Printf("%q", out) }

Результат выполнения кода:

"Error: exec: \"nonexistent-command\": executable file not found in $PATH"

Смотрите также

  • метод exec.Cmd.Run,
    который выполняет команду без возврата вывода
  • метод exec.Cmd.CombinedOutput,
    который возвращает объединенный вывод stdout и stderr
  • функцию exec.Command,
    которая создает объект команды
  • метод exec.Cmd.StdoutPipe,
    который возвращает канал для чтения вывода в реальном времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить