bash变量在for循环子命令中扩展

时间:2019-02-20 19:43:17

标签: bash kubectl

尝试在其中扩展for循环变量不会成功- 我正在尝试在jsonpath中使用$ i变量进行以下循环:

for i in {0..9}; do 
    echo $i
    kubectl exec -i -t "$(kubectl get pod -l "app=mdm-shard" -o jsonpath='{.items[{$i}].metadata.name}')" -- cat /proc/net/udp
done

我得到:

0
error: error parsing jsonpath {.items[{$i}].metadata.name}, invalid array index {$i}
error: pod name must be specified

我尝试了很多组合,但是找不到要在查询中扩展$ i的组合。

我的bash版本:

GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)

1 个答案:

答案 0 :(得分:0)

谢谢你本杰明-是的,这行得通:

for i in {0..9}; do 
  echo $i
  kubectl exec -i -t "$(kubectl get pod -l "app=mdm-shard" -o jsonpath="{.items[$i].metadata.name}")" -- cat /proc/net/udp; 
done