Shell Program(3) 조건문

*논리 연산자 : '||' 와 '&&' 이용

|| : OR연산에 해당하고 C언어 ||의 특징과 같이 앞 조건이 참이면 뒷 조건을 볼 필요없이

인 식이므로 뒷 조건을 확인하지 않는다. 반대로 앞 조건이 거짓이면 뒷 조건을 실행

한다.

cat test.txt || touch test.txt #test.txt가 있으면 내용을 출력하고 종료

#존재하지 않으면 test.txt를 만든다.

&& : AND연산에 해당하고 C언어의 && 처럼 앞 조건이 거짓이면 뒷 조건을 볼 필요없이

거짓인 식이므로 뒷 조건식을 확인하지 않는다. 반대로 앞 조건이 참이면 뒷 조건이 거짓

일수 있으므로 뒷 조건을 확인 및 실행한다.

cat test.txt && rm test.txt #test.txt가 있으면 내용을 출력하고 삭제

#존재하지 않으면 그냥 종료

*if문 : C와 마찬가지로 if, if~else, if~else if~ else 구문이 존재한다.

#if와 같은 구문

if [conditions]

then

#statements

fi

#if~else와 같은 구문

if [conditions]

then

#statements_1

else

#statements_2

fi

#if~else if ~else 와 같은 구문

if [conditions]

then

#statements_1

elif [conditions]

then

#statements_2

else

#statements_3

fi

ex)

if [ $# -eq 2 ] #인자가 2개이면

then

echo "arg1: <$1>, arg2: <$2>"

elif [ $# -eq 1 ] #인자가 1개 이면

then

echo "arg1: <$1>"

else #나머지의 경우

echo "args too many or no arg!"

fi

*case문

case $var in

condition1) #조건 1부터 ~~

#statements_1 ;;

condition2)

#statements_2 ;;

condition3)

#statements_3 ;;

*) #디폴트 ... 생략 가능하다

# Default statements ;;

esac

ex)

case $1 in

ls) #조건 1부터 ~~

ls ;;

ps)

ps ;;

pwd)

pwd ;;

*) #디폴트

echo "error!!!" ;;

esac

댓글

이 블로그의 인기 게시물

ubuntu에서 samba로 파일 공유하기

화이트해커를 위한 암호와 해킹

Shell Program(1) 변수, 상수