Bash 在kubernetes吊舱容器内循环运行命令n次

Bash 在kubernetes吊舱容器内循环运行命令n次,bash,docker,sed,kubernetes,kubernetes-pod,Bash,Docker,Sed,Kubernetes,Kubernetes Pod,基本上,如果这是正确的方法,我需要澄清:我能够在k8s吊舱上的容器内运行sed命令。现在,同一个sed我想循环10次,但不确定这是否有效,尽管我没有从kubernetes吊舱或日志中得到任何错误。请确认我的循环是否良好 'sed -i "s/\(training:\).*/\1 12/" ghav/default_sql.spec.txt && lant estimate -e dlav/lat/experiment_specs/default_sql.spec

基本上,如果这是正确的方法,我需要澄清:我能够在k8s吊舱上的容器内运行sed命令。现在,同一个sed我想循环10次,但不确定这是否有效,尽管我没有从kubernetes吊舱或日志中得到任何错误。请确认我的循环是否良好

'sed -i "s/\(training:\).*/\1 12/" ghav/default_sql.spec.txt &&
         lant estimate -e dlav/lat/experiment_specs/default_sql.spec.txt -r /out'
我想在同一个容器中执行此工作命令10次。下面是右边吗

'for run in $(seq 1 10); do sed -i "s/\(training:\).*/\1 12/" ghav/default_sql.spec.txt &&
         lant estimate -e dlav/lat/experiment_specs/default_sql.spec.txt -r /out; done' 
pod被创建并运行良好,但我不确定如何确认我的循环是否良好,我做了10次

里面的豆荚我看到下面

Args:
  sh
  -c
  'for run in $(seq 1 10); do sed -i "s/\(training:\).*/\1 12/" ghav/default_sql.spec.txt &&
         lant estimate -e dlav/lat/experiment_specs/default_sql.spec.txt -r /out; done'
“”确实提到:

要查看容器中运行的命令的输出,请查看Pod中的日志:

kubectl logs command-demo
因此,请确保您的命令(用于测试)确实回显了一些内容,并检查pod日志

sh -c 'for run in $(seq 1 10); do echo "$run"; done'
例如:

command: ["/bin/sh"]
args: ["-c", "for run in $(seq 1 10); do echo \"$run\"; done"]
(此处使用
seq
,如中所述)

对于任何复杂的命令序列(混合引号),最好将该序列包装在脚本文件中,并将该可执行文件称为10 tiles。
日志将确认循环执行了10次。

sh-c
更改为
sh-x-c
(或在
for
之前添加
set-x;
),并观察命令的stderr输出-您将看到所有执行的命令,因此您可以确认它执行了n次。我更新了适用于sh的for循环。因此,我的命令不需要使用单引号吗?你能解释args中的“or”吗?还有,我的语法看起来好吗?args:[“-c”,“或在$(seq 1 10)中运行;执行sed-i/(培训时间:)./\1 12/“dav/lanenet/t_specs/default_sql.spec.txt&&lanet estimate-e dv/lanenet/t_specs/default_sql.spec.txt-r/out;完成”]这是一个打字错误。为了,而不是为了。复制粘贴出错。请在此docker上下文之外尝试sed表达式,以确保它正常工作。然后在这里申请。