发布时间:2024-11-22 00:08:51
以下是一个简单的示例代码:
```go package main import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("ls", "-l") err := cmd.Start() if err != nil { fmt.Println("启动进程失败:", err) return } fmt.Println("进程已启动") err = cmd.Wait() if err != nil { fmt.Println("等待进程结束失败:", err) return } fmt.Println("进程已结束") } ``` 在上述示例中,我们通过`exec.Command`函数创建了一个表示执行`ls -l`命令的`Cmd`结构体,并通过`Start`方法启动了新的进程。然后,我们通过调用`Wait`方法来等待进程的结束。以下是一个简单的示例代码:
```go package main import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("echo", "Hello, Go!") output, err := cmd.Output() if err != nil { fmt.Println("执行命令失败:", err) return } fmt.Println(string(output)) } ``` 在上述示例中,我们通过`exec.Command`函数创建了一个表示执行`echo "Hello, Go!"`命令的`Cmd`结构体,并通过调用`Output`方法执行了该命令。然后,我们通过调用`string`函数将输出结果转换为字符串并打印出来。以下是一个简单的示例代码:
```go package main import ( "fmt" "os/exec" "time" ) func main() { cmd := exec.Command("sleep", "10") err := cmd.Start() if err != nil { fmt.Println("启动进程失败:", err) return } fmt.Println("进程已启动") time.Sleep(5 * time.Second) err = cmd.Process.Kill() if err != nil { fmt.Println("终止进程失败:", err) return } fmt.Println("进程已终止") err = cmd.Wait() if err != nil { fmt.Println("等待进程结束失败:", err) return } fmt.Println("进程已结束") } ``` 在上述示例中,我们通过`exec.Command`函数创建了一个表示执行`sleep 10`命令的`Cmd`结构体,并通过调用`Start`方法启动了新的进程。然后,我们通过调用`time.Sleep`函数等待5秒钟,再通过调用`cmd.Process.Kill`方法向进程发送终止信号。最后,我们通过调用`Wait`方法等待进程的结束。