通过 ssh 执行 kubectl exec 时如何保留双引号?

问题描述 投票:0回答:0

上下文是我想从远程计算机在 HashiCorp Vault 容器内写入 /tmp/policy.hcl 文件,然后我可以用它来编写策略。我正在努力保留文件中的双引号。

#!/bin/sh

function send {
    sshpass -p mypassword ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" "root@${1}" "${2}"
}

send "${host}" "kubectl -n ${namespace} exec pod/vault-0 -- sh -c 'echo path \"secret/*\" { capabilities = [\"create\", \"read\", \"update\", \"delete\", \"list\"]} > /tmp/policy.hcl'"
# kubectl -n vault exec -it pod/vault-0 -- cat /tmp/policy.hcl
path secret/* { capabilities = [create, read, update, delete, list]}

内容应该是

path "secret/*" { capabilities = ["create", "read", "update", "delete", "list"]}
。我尝试过转义和单/双引号使用的各种组合,但它们都有相似的结果。

shell escaping sh quotes
© www.soinside.com 2019 - 2024. All rights reserved.