[shell script] 이중 for문에서 break, continue를 이용해 바깥쪽 루프를 종료/스킵 하는 법
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
로 현재 속해 있는 루프를 나타냅니다.
숫자가 하나씩 증가할 때마다 바깥쪽
루프를 가리킵니다.
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
아래의 내용을 생략하고 다음 반복을 진행하는 것을 볼 수 있습니다.
바깥의 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
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
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 2
fi
echo " j -> $j"
done
done
$ ./test1
i -> 1
j -> 1
i -> 2
j -> 1
i -> 3
j -> 1
i -> 4
j -> 1
Author And Source
이 문제에 관하여([shell script] 이중 for문에서 break, continue를 이용해 바깥쪽 루프를 종료/스킵 하는 법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@khyup0629/shell-script-이중-for문에서-break-continue를-이용해-바깥쪽-루프를-종료스킵-하는-법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)