Метод exec.Cmd.Run
Метод exec.Cmd.Run запускает команду, представленную структурой Cmd,
и ожидает ее завершения. В первый параметр метод не принимает никаких значений,
он работает с уже сконфигурированным экземпляром Cmd. Метод возвращает
ошибку типа error, которая будет равна nil, если команда завершилась
успешно. В случае ошибки возвращается подробное описание проблемы.
Синтаксис
err := cmd.Run()
Пример
Давайте запустим команду echo с аргументом и дождемся ее завершения:
package main
import (
"os/exec"
"fmt"
)
func main() {
cmd := exec.Command("echo", "Hello, World!")
err := cmd.Run()
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Command executed successfully")
}
}
Результат выполнения кода:
"Command executed successfully"
Пример
Давайте попробуем запустить несуществующую команду и обработаем ошибку:
package main
import (
"os/exec"
"fmt"
)
func main() {
cmd := exec.Command("nonexistent-command")
err := cmd.Run()
if err != nil {
fmt.Println("Error occurred:", err)
} else {
fmt.Println("Command executed successfully")
}
}
Результат выполнения кода:
"Error occurred: exec: \"nonexistent-command\": executable file not found in $PATH"
Пример
Давайте запустим команду, которая завершится с ошибкой, и обработаем этот случай:
package main
import (
"os/exec"
"fmt"
)
func main() {
cmd := exec.Command("ls", "/nonexistent-directory")
err := cmd.Run()
if err != nil {
fmt.Println("Command failed:", err)
} else {
fmt.Println("Command executed successfully")
}
}
Результат выполнения кода:
"Command failed: exit status 2"
Смотрите также
-
метод
exec.Cmd.Start,
который запускает команду без ожидания завершения -
метод
exec.Cmd.Wait,
который ожидает завершения уже запущенной команды -
метод
exec.Cmd.Output,
который запускает команду и возвращает ее стандартный вывод -
метод
exec.Cmd.CombinedOutput,
который запускает команду и возвращает объединенный вывод