K8S 如何在为 `kubectl exec -c` 提供的参数上添加引号

K8S How to add quotes when on parameters provided for `kubectl exec -c`

我用的是K8S

我想计算一个字符串,它是 kubectl exec -it ... -c

的结果

-c选项后有一个字符串。

如何传递内部带有双引号的字符串。

以下示例无法正常运行。

x="$(kubectl exec -it mysql-pod -- /bin/sh -c \"mysql -uroot -p12345
   -e 'show databases'\" 2>/dev/null)"
echo $x

谢谢。

  • 当只需要在 pod 上执行命令时,不需要 -it 选项,因为它代表附加交互式终端
  • 当mysql本身就是一个可执行命令时,不需要使用/bin/sh -c
  • 无需将整个命令封装在" "

所以尝试关注

x=$(kubectl exec mysql-pod -- mysql -uroot -p12345 -e 'show databases ;' 2>/dev/null)
echo $x