7. Branching

몽자비루 ㅣ 2024. 4. 11. 15:54

  1. exit
    1. 실행된 프로그램이 종료된 상태를 전달.
      • exit <숫자>
        • 0 : 프로그램 또는 명령이 성공적으로 종료했음을 의미
        • 1~255 : 프로그램 또는 명령이 실패로 종료했음을 의미
          • 1 :  일반 에러
          • 2 : Syntax error
          • 126 : 명령을 실행할 수 없음
          • 127 : 명령(파일) 이 존재하지 않음
          • 128+N : 종료 시그널 + N (kill-9PID 로 종료 시, 128 + 9 = 137)
        •  
      • $? : 종료값 출력
    1. example
      • 0 : 정상 종료된 케이스
      • 1 : 일반 에러
      • 127 : 명령이 존재하지 않음
      • 128+n : 종료시그널
  1. test
    1.  비교연산자
      • `test <명령어>` or `[명령어]`
      • 명령어 실행 결과를 true(0) 또는 false(1) 로 리턴한다.
      • test 명령어는 다양한 연사자를 지원한다. (help test)
        • x -eq y : x==y
        • x -gt y : x > y
        • x -ge y : x >= t
        • x -lt y : x < y
        • x -le y : x <= y
        • x -ne y : x != y
        • -e file : 파일이 존재하면 true
        • -d fiile : 파일이 디렉토리면 true
        • -f file : 파일이 파일이면 true
        • -x file : 파일 실행 가능하면 true
    2.  Example
      • 숫자 연산
      • 파일 디렉토리 여부 확인
      • 대괄호 사용
      • 산술연산(expr, let)
  2.  if-then-fi
    1. 조건 명령어 .command 실행 결과에 따라 서로 다른 command를 실행함.
      • if 조건1 → then 액션1 else 액션2 fi
        • if /then 조건


        • if / then / else 조건
  3.  case
    1. $var의 값에 따라 명령어를 실행
      • case "$variable" in
          pattern1) command1 ;;
          pattern2) command2 ;;
          *) command3 ;;
          esac
    2. Example
      • 입력된 답변에 따라 출력
      • 문자 시작 or 대문자 시작 모두 허용하기
        [Yy]es) echo "System restart.";;
        [Nn]o) echo "shutdown the system";;
        *) echo "entered incorrectly";;


      • 입력된 값에 따라 결과 출력하기

        • 값이 1, 2일 때는 정상 종료 (exit 값 0)
          값이 그 외일 때는 에러 종료 (exit 값 1)
  4. 실습
    1. 입력 받은 디렉토리가 실제 디렉토리면 파일 목록을 /tmp/날짜.txt 파일에 저장.
      실제 디렉토리가 아니면 It's not a directory 메시지 출력
    2. 결과

'쿠버네티스 > shell programming' 카테고리의 다른 글

8. looping  (0) 2024.04.12
6. Input&Output  (0) 2024.04.11
5. Positional Parameters  (0) 2024.04.09
4. Bash shell script란  (0) 2024.04.09
3. Bash shell과 Rules  (0) 2024.04.09