2장. 프로세스 관리

Download Report

Transcript 2장. 프로세스 관리

5장. 쉘 프로그래밍
목차
1.
2.
3.
4.
쉘 개요
쉘 프로그래밍
기본 문법
쉘 프로그래밍 활용
3. 기본 문법

조건 제어문 : IF
주어진 조건을 만족하는지 만족하지 않는지 판단해 조건 분기를
한다.
형식1
형식2
형식3
if 조건
then
명령어(들)
fi
if 조건
then
명령어(들)
else
명령어(들)
fi
if 조건1
then
명령어(들)
elif 조건2
then
명령어(들)
else
명령어(들)
fi
3. 기본 문법
조건 예 :
- 문자비교 : if [ $a = “y” ]
문자비교에는 =, != 만 사용
반드시 공백 필요
- 숫자비교 : if [ $a –eq 10 ]
숫자비교에는 비교연산자 사용
3. 기본 문법
예제
yesno.sh
#! /bin/bash
echo "Input (y/n)"
read a
if [ $a = "y" ]
then
echo "Yes"
else
echo "No"
fi
실행 결과
$ ./yesno.sh
Input (y/n)
y
Yes
$ ./yesno.sh
Input (y/n)
n
No
#
키보드로 입력
키보드로 입력
3. 기본 문법

비교 연산자
숫자값의 크기를 비교한다.
d 값은
0 ~ 6 중 하나
연산자
의미
-eq
=
-ne
!=
-ge
>=
-gt
>
-le
<=
-lt
<
예제
#! /bin/bash
echo "Dice simulation “
let d=$RANDOM%7
if [ $d –ne 0 ]
then
echo "Number is $d"
fi
$RANDOM : 0 ~ 32767 사이의 난수값 반환
주사위는 0이
없으므로
실습 3
* 주민등록번호 를 입력 받아 다음의 결과가 나오도록 하려면
쉘 스크립트의 내용은?
결과 :
Input your ID number : xxxxxx-xxxxxxx
You are a male.
( 혹은
Your are a female. )
힌트 : 주민등록번호는 – 다음의 숫자가 1 이면 male, 2 이면 female 이다.
if [ ${a:7:1} –eq 1 ] 이용
3. 기본 문법

논리 연산자
표현식의 논리적 상태를 판단한다.
연산자
설명
! 표현식
NOT
표현식1 -a 표현식2
AND
표현식1 -o 표현식2
OR
if ! [ $a –eq 0 ]
공백!
예제
0 < $a < 10
#! /bin/bash
echo "Input a number : "
read a
if [ $a -gt 0 -a $a -lt 10 ]
then
echo "$a is OK"
else
echo "$a is no OK"
fi
3. 기본 문법

test 명령
If 문의 조건에 [
if test 조건
then
명령어(들)
fi
] 대신에 test 를 사용할 수 있다.
#! /bin/bash
echo "Input (y/n) : "
read a
if test $a = "y"
then
echo "yes"
else
echo "no"
fi
#! /bin/bash
echo "Input Score : "
read a
if test $a -gt 60
then
echo "Pass"
else
echo "Fail"
fi
실습 4
*
3. 기본 문법

반복문 : FOR
• 특정 명령을 반복하기 위해 사용한다.
형식
예제
for 변수 in $(seq 숫자)
do
명령어(들)
done
#! /bin/bash
echo "Enter a number"
read a
for b in $(seq 9)
do
let sum=a+b
echo "$a + $b = $sum"
done
숫자만큼 반복한다.
변수 값 : 1 ~ 숫자값까지 증가
9번 반복한다.
b값 : 1 ~ 9
3. 기본 문법
예제
#! /bin/bash
a=80
for b in $( seq $a )
do
echo -n " $b "
done
변수를 사용해도 된다.
3. 기본 문법

조건 반복문 : while 과 until
while : 조건이 참 ( True ) 인 동안만 반복 실행
until : 조건이 참 ( True ) 이 될 때 까지만 반복 실행
형식
while [ 조건 ]
do
명령어(들)
done
until [ 조건 ]
do
명령어(들)
done
3. 기본 문법
예제 1
#! /bin/bash
a=10
while [ $a -ge 0 ]
do
echo $a
let a=a-1
done
변수 a 가 0보다 크거나 같은 동안 반복
10
9
8
7
6
5
4
3
2
1
3. 기본 문법
예제2
#! /bin/bash
a=10
until [ $a -le 0 ]
do
echo $a
let a=a-1
done
변수 a 가 0보다 작거나 같아질때까지 반복
10
9
8
7
6
5
4
3
2
1
실습 5
*
다음과 같이 어떤 숫자를 입력하면 1 부터 그 숫자까지 모두
합산을 하는 쉘 스크립트를 작성하라.
과정 :
결과 :
$ sh exam5.sh
Input a number
10
Total Sum is 55
#! /bin/bash
echo " Input a number "
read a
c=0
while [ $a -ge 0 ]
do
let c=c+a
let a=a-1
done
echo "Total Sum is" $c
실습 6
*
다음의 결과와 같이 구구단을 만드는 쉘 스크립트를 작성하라.
과정 :
결과 :
$ sh exam4.sh
Input a number
5
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 9 = 45
#! /bin/bash
echo " Input a number"
read a
for b in $( seq 9 )
do
let c=a*b
echo "$a x $b = $c"
done
or
#! /bin/bash
echo " Input a number "
read a
b=1
while [ $b -le 9 ]
do
let c=a*b
echo "$a x $b = $c"
let b=b+1
done
실습 7
* 입력된 수만큼 삼각형을 만드는 스크립트를 작성하라.
#! /bin/bash
echo -n " Number : "
read a
for b in $(seq $a)
do
for c in $(seq $b)
do
echo –n " * "
done
echo ""
done