从 Go 执行 Bash 脚本
挑战
从 Go 执行 bash 脚本,您尝试使用 os/exec 包,但在输入脚本路径或其内容时遇到了挑战作为参数。此脚本设置变量并执行特定任务。
解决方案
要从 Go 成功执行 bash 脚本,请考虑以下步骤:
先决条件
使用 os/exec Package
如果您更喜欢使用 os/exec,请将代码修改为如下:
cmd := exec.Command("/bin/sh", mongoToCsvSH) out, err := cmd.Output()
这里,“/bin/sh”表示执行脚本的解释器,后跟 bash 脚本 mongoToCsvSH 的路径。
替代方法
您可以使用以下代码来代替使用 os/exec 来执行script:
import ( "io/ioutil" "os" ) func main() { content, err := ioutil.ReadFile("mongoToCsvSH.sh") if err != nil { log.Fatal(err) } err = os.WriteFile("run.sh", content, 0755) if err != nil { log.Fatal(err) } cmd := exec.Command("./run.sh") cmd.Run() }
此方法读取 bash 脚本内容,将其写入具有可执行权限(chmod 0755)的临时“run.sh”文件,然后执行它。
以上是如何有效地从 Go 执行 Bash 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!