본문 바로가기

Linux/Exercise

쉘프로그래밍 기초 2 - 연습용

문제 5]  다음과 같이 출력되는 스크립트를 if와 case를 이용해서 작성하시오.

        ==================

         서비스 제어 관리 
        ==================
    
        [1] Network Service
        [2] Xinetd Service
        [3] Ssh Service
 
제어할 서비스 번호를 입력하시오 : 1

        [1] Network Service Start
        [2] Network Service Stop
        [3] Network Service Restart
 
원하는 서비스 번호를 입력하시오 : 1
loopback 인터페이스를 활성화 중:                      [  OK  ]
eth0 인터페이스 활성화 중:                             [  OK  ]

# vi service3.sh
---------------------------------------------------------
#!/bin/bash
echo " 
        ==================
         서비스 제어 관리 
        ==================
    
        [1] Network Service
        [2] Xinetd Service
        [3] Ssh Service"
echo " "
echo -n "제어할 서비스 번호를 입력하시오 : "
read num;
if [ "$num" = "1" ]
then
        echo "
              [1] Network Service Start
              [2] Network Service Stop
              [3] Network Service Restart"
        echo " "
        echo -n "원하는 서비스 번호를 입력하시오 : "
        read num2;
        case $num2 in
        1) service network start;;
        2) service network stop;;
        3) service network restart;;
        *) echo "
                 잘못된 번호를 선택하셨습니다. (1/2/3)
                 처음 메뉴 화면으로 이동됩니다." && sh service3.sh;;
        esac
        exit
elif [ "$num" = "2" ]
then
        echo "
              [1] Xinetd Service Start
              [2] Xinetd Service Stop
              [3] Xinetd Service Restart"
        echo " "
        echo -n "원하는 서비스 번호를 입력하시오 : "
        read num2;
        case $num2 in
        1) service xinetd start;;
        2) service xinetd stop;;
        3) service xinetd restart;;
        *) echo "
                 잘못된 번호를 선택하셨습니다. (1/2/3)
                 처음 메뉴 화면으로 이동됩니다." && sh service3.sh;;
        esac
        exit
elif [ "$num" = "3" ]
then
        echo "
              [1] Ssh Service Start
              [2] Ssh Service Stop
              [3] Ssh Service Restart"
        echo " "
        echo -n "원하는 서비스 번호를 입력하시오 : "
        read num2;
        case $num2 in
        1) service sshd start;;
        2) service sshd stop;;
        3) service sshd restart;;
        *) echo "
                 잘못된 번호를 선택하셨습니다. (1/2/3)
                 처음 메뉴 화면으로 이동됩니다." && sh service3.sh;;
        esac
        exit
fi
[root@server3 data]# cat service3.sh
#!/bin/bash
echo " 
        ==================
         서비스 제어 관리 
        ==================
    
        [1] Network Service
        [2] Xinetd Service
        [3] Ssh Service"
echo " "
echo -n "제어할 서비스 번호를 입력하시오 : "
read num;
if [ "$num" = "1" ]
then
        echo "
              [1] Network Service Start
              [2] Network Service Stop
              [3] Network Service Restart"
        echo " "
        echo -n "원하는 서비스 번호를 입력하시오 : "
        read num2;
        case $num2 in
        1) service network start;;
        2) service network stop;;
        3) service network restart;;
        *) echo "
                 --------------------------------------
                 잘못된 번호를 선택하셨습니다. (1/2/3)
                 처음 메뉴 화면으로 이동됩니다.
                 --------------------------------------" && sh service3.sh;;
        esac
        exit
elif [ "$num" = "2" ]
then
        echo "
              [1] Xinetd Service Start
              [2] Xinetd Service Stop
              [3] Xinetd Service Restart"
        echo " "
        echo -n "원하는 서비스 번호를 입력하시오 : "
        read num2;
        case $num2 in
        1) service xinetd start;;
        2) service xinetd stop;;
        3) service xinetd restart;;
        *) echo "
                 잘못된 번호를 선택하셨습니다. (1/2/3)
                 처음 메뉴 화면으로 이동됩니다." && sh service3.sh;;
        esac
        exit
elif [ "$num" = "3" ]
then
        echo "
              [1] Ssh Service Start
              [2] Ssh Service Stop
              [3] Ssh Service Restart"
        echo " "
        echo -n "원하는 서비스 번호를 입력하시오 : "
        read num2;
        case $num2 in
        1) service sshd start;;
        2) service sshd stop;;
        3) service sshd restart;;
        *) echo "
                 잘못된 번호를 선택하셨습니다. (1/2/3)
                 처음 메뉴 화면으로 이동됩니다." && sh service3.sh;;
        esac
        exit
elif [ "$num" -ge 4 ]
then
        echo " "
        echo "잘못된 번호를 입력하셨습니다."
        echo -n "처음 메뉴로 이동하시겠습니까? (1=yes / 2=no) : "
        read Y;
        case $Y in
        1) sh service3.sh;;
        *) echo " " && echo "종료합니다." ;;
        esac
        exit
fi
---------------------------------------------------------

문제 6] 구구단을 실행하는 스크립트를 until을 사용해서 작성하시오.

구구단 프로그램
 
단을 입력하시요 : 2

=============
   2단   
=============
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18

# vi tt10.sh
---------------------------------------------------------
#!/bin/bash
echo " "
echo "구구단 프로그램"
echo " "
echo -n "단을 입력하시요 : "
read dan
num=1
echo "============="
echo "   $dan단    "
echo "============="

until [ $num -gt 9 ]  or until [ $num -eq 10 ]
do
        num1=`expr $dan \* $num`
        echo $dan X $num = $num1
        num=`expr $num + 1`
done

---------------------------------------------------------

문제 7] 구구단을 실행하는 스크립트를 작성하시오. (2~9단)

# vi tt10.sh
---------------------------------------------------------
1. until 사용
#!/bin/bash

echo " "
echo "구구단 프로그램"
echo " "
dan=2
num=1
until [ $dan -eq 10 ]
do
        echo "============="
        echo "   $dan단    "
        echo "============="

        until [ $num -gt 9 ]
        do
                num1=`expr $dan \* $num`
                echo $dan X $num = $num1
                num=`expr $num + 1`
        done
        dan=`expr $dan + 1`
        num=0
        echo " "
done
2. while 사용
#!/bin/bash
echo " "
echo "구구단 프로그램"
echo " "
dan=2
num=1
while [ $dan -le 9 ]
do
        echo "============="
        echo "   $dan단    "
        echo "============="

        while [ $num -le 9 ]
        do
                num1=`expr $dan \* $num`
                echo $dan X $num = $num1
                num=`expr $num + 1`
        done
        dan=`expr $dan + 1`
        num=1
        echo " "
done
3. for 사용
#!/bin/bash
echo " "
echo "구구단 프로그램"
echo " "
for dan in 2 3 4 5 6 7 8 9
do
        echo "============="
        echo "   $dan단    "
        echo "============="
        for num in 1 2 3 4 5 6 7 8 9
        do
                num1=`expr $dan \* $num`
                echo $dan X $num = $num1
        done
        echo " "
done
---------------------------------------------------------