본문 바로가기
컴퓨터공학기초 개념/시스템 프로그래밍

30. 쉘 스크립트 - 조건문

by devraphy 2021. 9. 24.

1. 쉘 스크립트의 지역변수

- 쉘 스크립트에는 기본적으로 미리 정의 되어있는 변수들이 있다. 

- 다음의 사진을 확인해보자. 

 

 

a) 실습예제

- 위의 설명이 정확하기 무엇을 말하는 것인지 잘 모르겠다.

- 그러므로 실습을 통해서 알아보자.

#!/bin/bash

echo "쉘의 프로세스번호 = " $$
echo "쉘 스크립트 이름 = " $0
echo "명령줄 인수 = " $1 $2 $3 $4 $5
echo "모든 명령줄 인수리스트 = " $*
echo "인수의 개수 = " $#


2. 연산자

- expr(expression): 숫자계산

- expr을 사용하는 경우, 역 작은따옴표를 사용해야한다. (물결표시 아래에 있는 특수문자)

- 연산자 *와 괄호() 앞에는 역실래시(\)를 같이 사용 해야한다.

- 연산자와 숫자, 변수, 기호 사이에는 스페이스를 넣어야 한다. 

 

a) 실습예제

#!/bin/bash

num=`expr \( 10 + 20 \) / 8 - 8`
num2=`expr 3 \* 3`
echo $num
echo $num2

- 첫번째 수식의 경우 30/8 을 먼저 수행하여 3.xxx를 구한 뒤 8을 빼는 연산을 거친다. 

- 연산결과는 정수로 나온다. 

 


3. 조건문 

a) if 조건문

- then과 fi 사이의 명령문은 들여쓰기가 되어 있어야 한다.

- 명령문을 꼭 탭(tab)키를 이용하여 띄워야 하는 것은 아니다.

- tab으로 명령문을 들여쓰기 하는 이유는 가독성이 좋기 때문이다. 

#!/bin/bash

if [조건문]
then
   명령문
fi

 

b) 실습예제

- 두개의 인자값을 받아 비교하여, 두 인자값이 다르면 different values를 출력하는 조건문을 만들어보자.

- 앞에서 배운 지역변수 중에 명령줄 인수를 받아오는 지역변수를 이용하여 인자값을 받으면 된다. 

#!/bin/bash

if [ $1 != $2 ]
then
        echo "different values"
        exit
fi

 

c) 알아두면 좋은 문자비교 연산자

 

 

d) 비교연산자

- 꺽쇄(<>)를 이용한 비교연산도 사용할 수 있다. 그러나 >= 또는 <=는 작동하지 않는다. 

- 다만, 쉘 환경에 따라서 동작하지 않을 수 있기 때문에, 아래의 비교연산자를 사용하는 것을 권장한다.  

 

댓글