kubernetes在环境中执行命令带有eval的变量

问题描述

我想在容器中执行一条命令(让它为 ls ),然后使用 echo $?读取退出代码。 kubectl exec -ti mypod -- bash -c "ls; echo $?"不起作用,因为它返回了我当前shell而不是容器之一的退出代码。

所以我尝试在清单中定义的env变量上使用 eval

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - container2
    image: varunuppal/nonrootsudo
    env:
    - name: resultCmd
      value: 'echo $?'

然后kubectl exec -ti mypod -- bash -c "ls;eval $resultCmd",但是eval命令不返回任何内容。

bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

请注意,我可以在容器中运行这两个命令

kubectl exec -ti mypod bash
#ls;eval $resultCmd
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
**0**

我如何使其起作用? 预先感谢,

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)