728x90
반응형

 

 

if 조건문 (if, elif, else, then, fi)

 

 

if문 문법

if [Command]; then
         [실행문장]
elif [Command]; then
         [실행문장]
else
         [실행문장]
fi

  • 자바, C언어는 조건문이 1일 때 True 지만, Bash Shell은 0일 때 True 나머지 False.
  • Bash Shell의 if문조건이 아닌 Command 즉 명령을 받음

 

 

 

if 예시1)
Command가 실행되면 Success 없으면 Fail

 

 

 

 

if 예시2)
입력 받은 Command가 실행되면 Success 없으면 no command

 

 

 

 

if 예시3)

  • shell script if 명령 실행되면 "" 명령이 실행되지 않으면 "거짓"
  • 따라 명령어 실행 성공여부가 아닌 명령 처리 결과를 알고 싶어도 수가 없음

  • 해당 명령어(find ./ -type f -name def) def 파일을 찾는 명령어

 

  • ls 결과 def 파일은 없음

 

  • def 파일의 유무를 원하지만 명령어가 실행됨 알려줌
  • 따라 def 파일이 존재하는지(명령 처리 결과) 수가 없음

 

 

명령 처리 결과를 알고 싶을

  • test "명령어"   or   ["명령어"] 대괄호 사용
  • abc 파일은 존재하고, def 파일은 미존재

  • 명령어 실행 결과가 아닌 명령어가 처리된 결과가 출력 됨

 

 

 

 

조건문 옵션

옵션 설명
-eq 값이 같으면 참
-ne 값이 다르면 참
-gt A > B
-ge A >= B
-lt A < B
-le A <= B
-z 문자열 길이가 0이면 참
-n 문자열 길이가 0이 아니면 참
-a &&, and 연산
-o ||, or 연산
-d 파일이 디렉토리면 참
-e 파일이 있으면 참
-L 파일이 심볼릭 링크면 참
-r 파일이 읽기 가능하면 참
-w 파일이 쓰기 가능하면 참
-x 파일이 실행 가능하면 참
-s 파일 크기가 0보다 크면 참

 

 

일부 문자열 비교 ( =~ )

문법

if [[ "문자열" =~ "비교 문자" ]] ; then

         [실행문장]

fi

 

  • =~ 비교 기호 사용
  • [[ ]] 대괄호 두개 사용

 

 

if 예시4)

  • 입력된 문자열에 'a'가 존재 유무 확인

 

 

 

 

 

 

else 조건문 (case, in, esac)

 

case문 문법

case [변수] in

    1) [case1] ;;

    2) [case2] ;;

    3) [case3] ;;

    *) [last case] ;;

esac

  • " *) " 은 case 1, case 2, case 3 모두 아닐 경우 수행
  • "esac" 는 case 문법 종료를 알림

 


case 예시1)

 

 

 

case 예시2)

728x90

+ Recent posts