오픈소스소프트웨어 정리 #10 흐름 제어

yuju9·2022년 10월 10일
0

오픈소스소프트웨어

목록 보기
10/14

if/else

  • 프로그래밍 언어에서의 if문과의 차이점
    • "condition"은 boolean조건이 아니라 "일련의 실행 가능한 명령들"이다.
    • 명령들이 정상적으로 실행되면 "참", 그렇지 않으면 "거짓"으로 간주
    • 명령의 정상적 실행여부는 그 명령의 exit status에 의해 판별
  • 예시

exit status

  • 모든 UNIX 명령어는 실행 후 하나의 정수 반환
  • 프로그램이 정상적으로 종료되면 0, 오류가 있을 경우 0이 아닌 값 반환
    • 이 정수 값을 exit code라고 부름
  • if문은 "condition"을 구성하는 명령들 중 마지막 명령의 exit code가 0이면 참, 그렇지 않으면 거짓으로 판단.

조건 검사 명령

  • if 문이 exit status만을 검사할 수 있다고 해서 보통의 프로그래밍 언어처럼 어떤 조건 가령 크기관계, 동일성 등을 검사할 수 없는 것은 아니다. (검사할 수 있다.)

조건을 테스트하는 2가지 방법

  1. [...]

    • 예를 들어 [string1=string2] -> 두 문자열의 동일성 검사
    • 이 자체가 하나의 명령. 괄호 안의 조건이 참이면 exit status가 0, 아니면 1
    • 여는 괄호 다음, 닫는 괄호 앞은 반드시 공백문자
    • 문자열 비교, 파일의 속성 검사 등을 할 수 있음
    • test string1=string2와 동일
  2. [[...]]

    • 내부에서 word splitting과 pathname expansion이 수행되지 않는 점을 빼면 [...]과 동일

문자열 비교



파일 속성 검사


복합 조건

  • [...] 내부에서 조건의 결합 (not, and, or)
    • !expr: 부정. 즉 expr이 참이면 거짓, 거짓이면 참.
    • -a: AND
    • -o: OR
  • 예시
if [$extension = jpg -o $extension = tga]; then 

# 괄호 넣어야할 땐 escape(\) 넣기
if [\($extension=jpg\) -o \($extension=tga\) ]; then

정수에 대한 조건 검사


for


case

  • 반복적인 if-then-else를 대체

select



while and until

0개의 댓글