英文:
Calling an external command in Go
问题
在Go语言中,你可以使用os/exec
包来调用外部命令。下面是一个示例代码,展示了如何调用外部命令并等待其执行完成后再执行下一条语句:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("command", "arg1", "arg2") // 替换为你要执行的命令及参数
err := cmd.Run()
if err != nil {
fmt.Println("命令执行失败:", err)
return
}
fmt.Println("命令执行成功")
}
在上面的代码中,你需要将"command"
替换为你要执行的外部命令,"arg1"
和"arg2"
替换为命令的参数(如果有的话)。cmd.Run()
方法会启动命令并等待其执行完成。如果命令执行成功,你可以在cmd.Run()
之后的代码中继续执行其他操作。
请注意,上述代码中的错误处理部分只是简单地打印错误信息。在实际应用中,你可能需要根据具体情况进行更详细的错误处理。
英文:
How can I call an external command in GO?
I need to call an external program and wait for it to finish execution. before the next statement is executed.
答案1
得分: 13
你需要使用exec包:使用Command启动一个命令,并使用Run
等待执行完成。
cmd := exec.Command("yourcommand", "some", "args")
if err := cmd.Run(); err != nil {
fmt.Println("Error:", err)
}
如果你只想读取结果,可以使用Output代替Run
。
英文:
You need to use the exec package : start a command using Command and use Run
to wait for completion.
cmd := exec.Command("yourcommand", "some", "args")
if err := cmd.Run(); err != nil {
fmt.Println("Error: ", err)
}
If you just want to read the result, you may use Output instead of Run
.
答案2
得分: 2
package main
import (
"fmt"
"os/exec"
"log"
)
func main() {
cmd := exec.Command("ls", "-ltr")
out, err := cmd.CombinedOutput()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", out)
}
英文:
package main
import (
"fmt"
"os/exec"
"log"
)
func main() {
cmd := exec.Command("ls", "-ltr")
out, err := cmd.CombinedOutput()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", out)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论