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 문 옵션에 대한 글 이였습니다.
linux ubuntu group 에 user 추가하기, default group 바꾸기(변경) (0) | 2014.08.05 |
---|---|
ubuntu git 폴더에서 특정 파일 제외하고 복사하기. rsync 알면 편한 Ubuntu 파일 백업 명령 (0) | 2014.07.31 |
ubuntu terminal 기본 shell 지정 방법과 .bashrc 가 적용 되지 않을 때 .bashrc 실행되게 하는 방법 (0) | 2014.07.03 |
Ubuntu 에 원격데스크탑으로 연결시 화면에 아무것도 나타나지 않는 현상 고치는 방법 (0) | 2014.06.21 |
samba 설정에서 윈도우 사용자가 만든 폴더에 읽고 쓰기 권한을 주기 (0) | 2014.06.13 |