我试过跟随Go Docs来调用一个只从GO输出"Hello"的python脚本,但直到现在才失败.
exec.Command("script.py")
Run Code Online (Sandbox Code Playgroud)
或者我也试过调用一个简单调用python脚本的shell脚本,但也失败了:
exec.Command("job.sh")
Run Code Online (Sandbox Code Playgroud)
任何想法我将如何实现这一目标?
编辑
我按照评论中的建议解决了问题,并添加了exec.Command()的完整路径.
exec.Command("script.py").Run()
exec.Command("job.sh").Run()
Run Code Online (Sandbox Code Playgroud)
您可以在" 如何在Golang中执行简单的Windows DOS命令? "中看到它(对于Windows,但同样的想法适用于Unix)
c := exec.Command("job.sh")
if err := c.Run(); err != nil {
fmt.Println("Error: ", err)
}
Run Code Online (Sandbox Code Playgroud)
或者,Output()如" 在Go中执行shell命令 "中所示:
cmd := exec.Command("job.sh")
out, err := cmd.Output()
if err != nil {
println(err.Error())
return
}
fmt.Println(string(out))
Run Code Online (Sandbox Code Playgroud)
首先,请不要忘记使python脚本具有可执行性(权限和#!/usr/local/bin/python开头)。
之后,您可以运行与此类似的操作(注意,它将报告您的错误和标准输出)。
package main
import (
"log"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("script.py")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
log.Println(cmd.Run())
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14363 次 |
| 最近记录: |