go - 无法从 Golang 运行 Shellscript

标签 go sh

我必须从 golang 运行可安装的 shell 脚本。我必须在运行脚本时提供全部是选项。

我可以通过如下命令运行它,

yes | install.sh

我怎样才能在 golang 中给出相同的内容。

我尝试了以下,

c := exec.Command("/bin/bash", 'path to install.sh', '| yes');
err = c.Run()

c := exec.Command("/bin/bash", 'yes | ', 'path to install.sh')
err = c.Run()

但是两者都不起作用。为此我需要帮助。

提前致谢

最佳答案

我尝试使用以下代码,它在我的情况下运行良好。

cmd1 := exec.Command("/bin/bash","-c", "yes")
cmd2 := exec.Command("path to install.sh", "2>&1 >/dev/null")
cmd2.Stdin, _ = cmd1.StdoutPipe()
cmd2.Stdout = os.Stdout
_ = cmd2.Start()
_ = cmd1.Run()
_ = cmd2.Wait()

关于go - 无法从 Golang 运行 Shellscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43678563/

相关文章:

python - 禁用某些消息的格式

json - 不能用 "encoding/json"覆盖鹰(类型接口(interface) {})

go - 使用反射,如何初始化结构指针字段的值?

go - 为什么来自不同模块的 Go C 类型不同?

select - 从 Go channel 获取值(value)

go - Go 1.5 中的包版本管理

linux - 接受可选参数的 Shell 脚本

linux - ssh-add 的钥匙串(keychain)

linux - 将变量导出到另一个 bash 脚本

bash - 结合 wget 和 zenity/yad