我试图在shell脚本中使用嵌套for循环来获得如下输出:
i=1 j=1 iteration 1
i=2 j=2 iteration 2
i=3 j=1 iteration 3
i=4 j=2 iteration 4
i=5 j=1 iteration 5
i=6 j=2 iteration 6
像
这样的东西for (( i=1; i <= 6;i++ ))
do
for ((j=1;j<2;j++))
do
echo i=$i;echo j=$j;echo iteration $i
...
done
done
答案 0 :(得分:1)
在Bash / Zsh / Ksh93(至少)中:
let iter=0
for (( i=1; i <= 6; ))
do
for (( j=1; j<=2; j++, i++ ))
do
printf "i=%d j=%d iteration %d\n" $i $j $(( ++iter ))
done
done
输出
i=1 j=1 iteration 1
i=2 j=2 iteration 2
i=3 j=1 iteration 3
i=4 j=2 iteration 4
i=5 j=1 iteration 5
i=6 j=2 iteration 6
以下内容也适用于标准命令语言:
iter=0
i=0
while (( i <= 6 ))
do
j=0
while (( ++j <= 2 && ++i <= 6 ))
do
printf "i=%d j=%d iteration %d\n" $i $j $(( ++iter ))
done
done
答案 1 :(得分:0)
#!/usr/bin/env bash
for i in `seq 1 6`; do
if [[ $((i%2)) -eq 1 ]]; then
echo "i=$i j=1 iteration $i"
else
echo "i=$i j=2 iteration $i"
fi
done