package main import ( "fmt" "os/exec" "runtime" "syscall" ) func main() { ls := "ls" args := []string{"ls", "-l"} if runtime.GOOS == "windows" { ls = "dir" args = nil } lspath, _ := exec.LookPath(ls) if lspath != "" { ls = lspath } err := syscall.Exec(ls, args, nil) if err != nil { fmt.Println("syscall.Exec error:", err) return } }