여러가지 실무활용 셀 프로그래밍
다음에 나오는 예제들은 실무적인 쉘프로그래밍을 하기 위한 기초적인 개념을 파악하고 활용할 수 있도록 구성이 되었다. 쉘프로그램 전체 내용 중 중점이 되는 부분에 관해 이해해 보자.
아래 내용들은 실무에서 실제 관리자들에 의해 요청된 사항들을 분석하여 제 작성된것이 많다. 실무에 바로 적용할 수 있지는 않지만 적절하게 변경하여 사용하기에 충분하도록 작성이 되어져 있다.
1. 디렉토리 추가 스크립트
/test 디렉토리 밑에 1,2,3,4 디렉토리가 존재하고 각 폴더 하위에 1,2,3,4폴더가
또 존재하도록 구성
(1) 1st study
디렉토리 안에 디렉토리를 생성하는 경우 for문(반복문) 2개 필요
#!/bin/bash
for DIR1 in 1 2 3 4 do mkdir -p /test/$DIR1 for DIR2 in 1 2 3 4 do mkdir /test/$DIR1 $DIR2 done done |
2. 계산기 프로그램(3가지 종류)
(1). 1st study
echo -n "Enter your choice : "
read choice
echo $choice
(2). 2nd study
read A
read B
SUM=`expr $A + $B`
(3). 3st study
if [ ] ; then
statement
else
statement
fi
(4). 4st study
변수에 값을 입력하는 방식
- 직접선언 A=10
# Variable="Hello Test" - read 명령어로 선언 read A
# echo -n "Enter your name?"
# read NAME - 반복문에서 입력으로 받는 방식 for VAR in 1 2 3 4
# for VAR in 1 2 3 4
do
echo $VAR
done - 기타 $1, $2 -> # script.sh A B
# expr 1 + 2
# expr 2 - 1
# expr 3 \* 3
# expr 10 / 3
# expr 20 % 3
[EX1] 두 개의 숫자를 입력 받고 한 개의 연산자를 선택할 수 있도록 계산하는 방식.
#!/bin/bash
echo -n "Enter A : " read A
echo -n "Enter B : " read B
cat << EOF ======================= (1) + (2) - (3) * (4) / ======================= EOF echo -n "Enter your choice ? : " read C
case $C in 1) echo -n "$A + $B = `expr $A + $B`" ;; 2) echo -n "$A - $B = `expr $A - $B`" ;; 3) echo -n "$A * $B = `expr $A \* $B`" ;; 4) echo -n "$A / $B = `expr $A / $B`" ;; *) echo -n "Enter Retry.. Next time" exit 1 esac |
[EX2]한 개의 숫자와 연산자를 입력 받고 또 숫자를 입력받아 계산하는 방식.
#!/bin/ksh
echo -n "Enter A : " read A
echo -n "Enter Operator : " read B
echo -n "Enter C : " read C
if [ "$B" = "+" ] ; then echo "$A + $C = `expr $A + $C`" elif [ "$B" = "-" ] ; then echo "$A - $C = `expr $A - $C`" elif [ "$B" = '*' ] ; then echo "$A * $C = `expr $A \* $C`" elif [ "$B" = "/" ] ; then echo "$A / $C = `expr $A / $C`" else echo "Error, Try Agin" exit 1 fi |
[참고] case ~ in ~ esac 구문
#!/bin/ksh
echo -n "Enter A : " read A
echo -n "Enter Operator : " read B
echo -n "Enter C : " read C
case $B in '+') echo "$A + $C = `expr $A + $C`" ;; '-') echo "$A - $C = `expr $A - $C`" ;; '*') echo "$A * $C = `expr $A \* $C`" ;; '/') echo "$A / $C = `expr $A / $C`" ;; *) echo "Error, Try Again" exit 1 ;; esac |
[EX3] 인자를 3개 받고 첫 번째 인자와 세 번째 인자인 숫자 연산. ./calculator_ver3.sh 1 + 3
#!/bin/ksh
if [ $# -ne 3 ] ; then echo "Usage : $0 num1 operator num2" exit 1 fi
echo "===========================================" echo " CAUTION MUX " echo " EXAMPLE : $0 3 \* 5 " echo "===========================================" echo
case $2 in '+') echo "$1 + $3 = `expr $1 + $3`" ;; '-') echo "$1 - $3 = `expr $1 - $3`" ;; '*') echo "$1 * $3 = `expr $1 \* $3`" ;; '/') echo "$1 / $3 = `expr $1 / $3`" ;; *) echo "Error, Try Again." exit 1 esac |
|
3. /etc/hosts 파일 생성 프로그램
한 관리자가 많은 서버를 관리하는 경우 /etc/hosts 파일 입력 형태 스크립트.
(1). 1st study
# cat /etc/hosts
#
1 #!/bin/bash
2
3 INT=1
4
5 while [ $INT -le 10 ]
6 do
7 CNT=1
8 PERCENT=`expr $INT \* 10`
9 echo -ne "$PERCENT % |"
10 while [ $CNT -le $INT ]
11 do
12 echo -ne "="
13 CNT=`expr $CNT + 1`
14 done
15 if [ $INT -ne 10 ] ; then
16 echo -ne ">\r"
17 else
18 echo -ne "| complete\n"
19 fi
20 INT=`expr $INT + 1`
21 sleep 1
22 done
23
'Learning > └◆Shell Scripts' 카테고리의 다른 글
searchspolit.sh 스크립트 작성 (0) | 2017.01.09 |
---|---|
MAC 충돌 점검 프로그램 작성 (0) | 2017.01.07 |
셸 스크립트 작성[중급편] (0) | 2016.12.14 |
셸 스크립트 작성[초급편] (0) | 2016.12.14 |