OUTER_LIST=(1 2)
INNER_LIST=(a b)
for (( i=0; i < ${#OUTER_LIST[@]}; i )); do
echo "outer...${OUTER_LIST[$i]}"
for (( i=0; i < ${#INNER_LIST[@]}; i )); do
echo "inner...${INNER_LIST[$i]}"
done
done
輸出:
外...1
內...a
內...b
問題:為什么它只回圈OUTER_LIST了 1 次?
uj5u.com熱心網友回復:
您i在內部回圈中使用相同的回圈變數 ,因此當第一次完成時,i它將2 超出外部回圈的范圍。
使用不同的變數修復它:
#!/bin/bash
OUTER_LIST=(1 2)
INNER_LIST=(a b)
for (( i=0; i < ${#OUTER_LIST[@]}; i )); do
echo "outer...${OUTER_LIST[$i]}"
for (( j=0; j < ${#INNER_LIST[@]}; j )); do
echo "inner...${INNER_LIST[$j]}"
done
done
或者:
for outer in "${OUTER_LIST[@]}"; do
echo "outer...$outer"
for inner in "${INNER_LIST[@]}"; do
echo "inner...$inner"
done
done
輸出:
outer...1
inner...a
inner...b
outer...2
inner...a
inner...b
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392361.html
上一篇:JQ不接受可變資料
