Go 语言多版本管理的最佳实践 —— Linux 和 Windows 专题20240702
package main
import (
"fmt"
"os"
"os/exec"
"runtime"
)
// 定义不同操作系统下的命令执行函数
var execCommand = exec.Command
// 根据操作系统选择正确的命令执行函数
func init() {
if runtime.GOOS == "windows" {
execCommand = exec.CommandProxy
}
}
// 示例函数,展示如何使用execCommand执行命令
func main() {
cmd := execCommand("echo", "Hello, World!")
cmd.Stdout = os.Stdout
if err := cmd.Run(); err != nil {
fmt.Println("命令执行出错:", err)
}
}
这个代码示例展示了如何在Go语言中根据不同的操作系统来选择不同的命令执行方式。在这个例子中,我们定义了一个execCommand
变量,并在init
函数中根据当前操作系统来决定使用标准的exec.Command
还是代理函数exec.CommandProxy
。这样,无论是在Windows还是Linux环境下,我们都可以用相同的接口来执行命令。
评论已关闭