for循环子命令中的bash变量扩展[重复]

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

这个问题在这里已有答案:

试图在这里扩展for循环变量不成功 - 我试图在jsonpath中使用$ i变量for循环:

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)
bash kubectl
1个回答
0
投票

谢谢Benjamin - 是的,这有效:

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
© www.soinside.com 2019 - 2024. All rights reserved.