상세 컨텐츠

본문 제목

linux ubuntu shell 에서 case 문 사용하기와 if 문 옵션

IT : Ubuntu

by 휀스 2014. 7. 24. 08:30

본문



Linux ubuntu shell 에서 case 문 사용하기와 if 문 옵션


shell script 에서 if 문을 사용한 조건처리를 하는 것 보다 case 문을 사용하여 처리하는 것이 더 보기 좋을 때가 있습니다. 보기 좋은 코드는 유지 관리를 쉽고 편하게 해주지요. 그리고 버그가 생성될 가능성도 낮아집니다.

성능도 조건이 많은 쪽이라면 case 가 훨씬 빠르않을까.... 라고 생각했었는데 컴파일러 마다 성능 차이가 다르다고 하는데 이런 성능차이는 일반적인 프로그램에서라면 이제 신경을 쓰지 않아도 될 정도로 CPU 성능이 좋아졌으니 가독성이 좋은 쪽으로 선택해서 사용하면 될것 같습니다. ^^



shell script 의 case 문은 다른 언어들과 크게 다르지 않습니다.


case $FRUIT in

"apple") echo "apple selected";;

"melon") echo "melon selected";;

*) echo "No fruit";;

esac


case 이후 변수를 적고 해당 변수와 비교되어 사용될 조건들을 아래 나열해 주면 됩니다.

조건은 문자가 될 수도 있고 숫자가 될 수도 있습니다. 문자일 경우는 "" 로 감싸주어야 합니다. 아니면 변수로 인식하니까요.


그리고 잊지 말아야 할 것 마지막에 ;; 를 적어주어야 한다는 것 입니다.

그렇지 않으면 아래와 같은 에러가 발생합니다.

shell script 와 같은 interpreter 언어들은 실행을 해야 문법에 대한 에러를 보여주니 한줄 한줄 유의하며 써야 개발시간을 더 줄일 수 있습니다.



Syntax error: ")" unexpected (expecting ";;")


제일 마지막엔 esac 라고 적어 case 문이 끝났음을 알려 주어야 겠죠?


그리고 if 문의 옵션에 대해서.


if 문을 사용하는데 파일 유무를 체크하기 위한 옵션을 알아 보았습니다.

출처 http://b4tenminutes.tistory.com/76


-s file 이 존재하고 그 file 이 비어있는 file 이 아닐 경우 true

-f file 이 존재하고 그 file 이름이 폴더이름이 아닐 경우 true

-d 폴더가 존재할 경우 true

-x file 이 실행 가능한 file 일 경우 true

-w file 이 쓰기 가능할 경우 true

-r file 이 읽기 가능할 경우 true


이렇게 옵션이 있는데 사용은 아래와 같이....


if [-f filename]

then

do something

fi


이렇게 사용하면 된다고 합니다.


이상 linux ubuntu shell 에서 case 문 사용하기와 if 문 옵션에 대한 글 이였습니다.




관련글 더보기