2016-11-29 6 views
1

イムでの入れ子の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 

バッシュ/ Zshの/は、ksh93で
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

あなたの質問は何ですか? 'i'が奇数か偶数かによって' j'を1と2の間で交互に入れ替える方法を尋ねていますか? – yelsayed

+0

これはネストされたループの質問の多くではありません。 "$ j"の質問に対する偶数/奇数の詳細 – NinjaGaiden

+0

jが1と2の間で交互に欲しいですが、私が奇数か偶数かに依存しません。 – Gunner

答えて

0

ような何か(少なくとも):

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 

Outp UT

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 
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 
関連する問題