简体   繁体   English

将值传递给标准输入子进程

[英]Pass value to stdin subprocess

I'm trying to replicate this command in the subprocess library.我正在尝试在子进程库中复制此命令。

kubectl patch secret foo --type=json --patch-file=/dev/stdin <<-EOF
  [
    {
      "op": "replace",
      "path": "/data/metadata/name",
      "value": "bar"
    }
  ]
EOF

How do I go about passing the below value via stdin?我如何 go 关于通过标准输入传递以下值?

<<-EOF
  [
    {
      "op": "replace",
      "path": "/data/metadata/name",
      "value": "bar"
    }
  ]
EOF

Ended up getting it working with similar to the following below:最终得到它与以下类似的工作:

def patch_secret(self, session):
     cmd = f'patch secret {self.secret_name} --namespace {self.namespace}' \
           f' --type=json --patch-file=/dev/stdin'

data="[{"op": "replace", "path": "/data/foo", "value": "TklFLXhmVnhsRHY4dnZMUEx0WXpJQ0M2bHl4Q1c4cElFdHpxeWFQN1VJTGs="}]"

r = subprocess.run(commands, input=data, env=envs, capture_output=True, universal_newlines=True, **kwargs)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM