breakとcontinueを使用して外部ループを終了/スキップする(shell script)デュアルfor文)
11630 ワード
パラメータをbreakとcontinueにループ
break
は、break
に属する重複文を終了する.j = 2
の場合、break
に遭遇すると、j
を迂回したfor
のドアは完全に閉じられ、その後はj = 3, 4
は実行されない.外転
i
のfor
ゲートには全く影響しません.$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
break
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
i -> 2
j -> 1
i -> 3
j -> 1
i -> 4
j -> 1
しかし、ここでは、i
の周りを回るfor
のドアを閉じる方法があります.break n
n
のデフォルト値は1
で、現在属しているループを示します.数字を1つ増やすたびに、
바깥쪽
ループを指します.break 2
が与えられると、外部i
を回転させるループは終了する.$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
break 2
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
continue
は、continue
が属する重複文の内容から次のコードをスキップします.continue
で、j = 2
と遭遇した場合は、continue
を回転するj
文で次の内容を省略し、次の反復が表示されます.外転
for
のcontinue
ゲートには全く影響しません.$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
continue
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
j -> 3
j -> 4
i -> 2
j -> 1
j -> 3
j -> 4
i -> 3
j -> 1
j -> 3
j -> 4
i -> 4
j -> 1
j -> 3
j -> 4
同様に、i
は、パラメータによって外輪の内容をスキップすることもできる.$ cat test1
#!/bin/bash
for (( i = 1; i <= 4; i++ ))
do
echo "i -> $i"
for (( j = 1; j <= 4; j++ ))
do
if (( $j == 2 ))
then
continue 2
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
i -> 2
j -> 1
i -> 3
j -> 1
i -> 4
j -> 1
Reference
この問題について(breakとcontinueを使用して外部ループを終了/スキップする(shell script)デュアルfor文)), 我々は、より多くの情報をここで見つけました https://velog.io/@khyup0629/shell-script-이중-for문에서-break-continue를-이용해-바깥쪽-루프를-종료스킵-하는-법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol