为了账号安全,请及时绑定邮箱和手机立即绑定

相当于 golang 中的 cat <<EOF

相当于 golang 中的 cat <<EOF

Go
守着星空守着你 2022-10-17 10:00:01
我正在尝试执行等效的操作:cat <<EOF | kubectl apply -f -apiVersion: v1kind: ConfigMapmetadata:  name: testMap  namespace: defaultdata:  details:    host: "localhost:${reg_port}"EOF在戈朗。我目前的尝试归结为:func generateConfig(port string) string {    return `apiVersion: v1kind: ConfigMapmetadata:  name: testMap  namespace: defaultdata:  details:    host: "localhost:" + port`}func main() {  exec.Command("kubectl", "apply", "-f", "-", generateConfig(5000))}发现它不起作用并出现错误,我并不感到特别惊讶:error: Unexpected args: [apiVersion: v1kind: ConfigMapmetadata:    name: testMap    namespace: defaultdata:    details:        host: "localhost:5000"]我认识到我将这些作为 args 传递并且 kubectl 需要一个文件,但是我发现自己完全不知道如何继续。我宁愿不制作临时文件或调用单独的 bash 脚本,因为这看起来比我希望的要复杂。
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

此处的 shell文档被定向到命令的标准输入。

以下是如何将命令的标准输入设置为 generateConfig 的结果:

cmd := exec.Command("kubectl", "apply", "-f", "-")

cmd.Stdin = strings.NewReader(generateConfig("5000"))


if err := cmd.Run(); err != nil {

    // handle error

}


查看完整回答
反对 回复 2022-10-17
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信