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
댓글