안녕하세요. RTLog입니다.
오늘은 C Shell Script에서 활용할 수 있는 제어문 마지막 편입니다.
흐름 변경(break, continue, goto, exit)
break
break문은 swtich문에서도 사용되었는데요. foreach, while, switch문에서 각 구문을 벗어나고자 할 때 사용됩니다. Nested Loop가 사용되었다면, 각 계층에서 한 단계의 Loop만 탈출하게 됩니다.
while ($condition)
# Some condition check
if (some_condition) then
break
endif
# Loop body
end
continue
"continue"문은 반복문에서 현재 iteration을 중단하고, 다음 iteration으로 이동합니다. 주로 특정 조건을 만족할 때, 현재 iteration을 건너뛰고 다음 iteration으로 넘어갈 때 사용됩니다.
foreach item ($list)
# Some condition check
if ($item == "skip")
continue
endif
# Process the item
end
goto
"goto" 명령문은 특정 레이블로 분기하고자 할 때 사용합니다. C Shell Script에서 goto는 보통 사용을 권장되지 않고, 대부분의 경우에 goto 대신에 반복문과 조건문을 사용하여 흐름을 관리합니다. (여러 개의 Loop를 한 번에 빠져나오고자 할 때, 유용할 수 있습니다.)
foreach item ($list)
foreach subitem ($sublist)
if ($condition)
goto end_loop
endif
end
end
end_loop:
# Some code after the loop
exit
"exit"은 스크립트 실행을 종료하는 데 사용됩니다. 일반적으로 , exit이 인수 없이 호출되면 스크립트가 성공적으로 종료되었음을 나타냅니다. (종료 코드 0)
종료 코드는 실행의 성공 또는 실패에 대한 정보를 전달하는 데 사용됩니다. 일반적으로 상태 코드 0은 성공을 나타내고, 0이 아닌 상태 코드는 일종의 오류/비정상적인 종료를 나타냅니다. 종료 상태 코드를 나타내는 exit에 정수를 함께 작성하여 종료 코드를 보낼 수 있습니다.
exit
exit 1
+ Recursion
"재귀 함수"라는 용어를 들어보셨을 텐데요. Shell Script도 재귀적으로 구현할 수 있습니다. cp 혹은 rm 명령어를 폴더에 적용할 때, -r option을 추가했었는데요. 이게 바로 Recursion을 나타냅니다. Script 내에서 실행 명령어로 Script 이름을 사용하면 재귀를 구현 할 수 있습니다. Factorial 예제를 확인해보겠습니다.
1 #!/bin/csh -f
2
3 set number = $argv[1]
4 @ i = $number
5 @ j = $i - 1
6
7 if ($j > 0) then
8 @ i = $i * `csh factorial.csh $j`
9 echo $i
10 else
11 echo 1
12 endif
13
14 # End of file
감사합니다.
'Linux' 카테고리의 다른 글
[Linux] C Shell Script - 제어문(2) (0) | 2024.03.27 |
---|---|
[Linux] 파일 검색 (1) | 2024.03.26 |
[Linux] Process (0) | 2024.03.26 |
[Linux] C Shell Script - 제어문(1) (0) | 2024.03.26 |
[Linux] C Shell Script - Operator (0) | 2024.03.26 |