IT 이야기/리눅스

7장. 쉡 스크립트 프로그래밍

나 그 네 2011. 6. 3. 14:47
1. 쉡 스크립트의 작성과 실행

vim name.sh

# !/bin/sh

echo "사용자 이름 : " $USERNAME
echo "호스트 이름 : " $HOSTNAME

exit 0 



쉘 스크립트 실행방법


(1) sh 파일명

(2) 파일의 권한을 실행할 수 있게 수정



2. 변수

기본적인 특성

모든 변수는 스트링 으로 취급된다.
변수 이름은 대소문자를 구분한다.
변수를 대입할 때는 좌우에 공백이 없어야 한다.


입력과 출력

$를 출력하기 위해서는 '' 로 묶어 주거나 '\' 를 붙여 주면 된다.

myvar="HI KIM"
echo $myvar     :    HI KIM
echo '$myvar'   :    $myvar
echo  \$myvar :    $myvar



숫자 계산

연산을 하기 위해서는 expr 을 사용한다. 꼭 역따옴표(`) 로 묶어 주어야 한다.
수식에 괄호를 넣기 위해서는 역슬래쉬 를 붙여 줘야 한다.
또한 곱하기 기호도 앞에 역슬래쉬를 붙여 줘야 한다. 


파리미터 변수


명령어 yum  -y  install  xinetd 
파라미터 변수  $0  $1  $2  $3 


# !/bin/sh
echo "실행파일 이름은 <$0> 이다"
echo "첫번째 파라미터는 <$1> 이고, 두번째 파라미터는 <$2> 이다 "
echo "전체 파라미터는 <$*> 다" 




3. if 문과 case 문

기본 if 문

# ! /bin/sh
if [ "kim" = "kim" ]     // 각 단어 사이에는 모두 공백이 있어야 한다.
then
           echo "True"
fi
exit 0 


case~esac 문

  1 #!/bin/sh
  2 case "$1" in
  3     start)
  4             echo "start" ;;
  5     stop)
  6             echo "stop" ;;
  7     restart)
  8             echo "restart" ;;
  9     *)
 10             echo "default" ;;
 11 esac
 12 exit 0



4. 반복문

for 문
  1 #!/bin.sh

  2 

  3 for fname in $(ls *.sh)

  4 do

  5     echo "-------$fname-------"

  6     head -3 $fname

  7 done

  8 exit 0



while 문
  1 #!/bin/sh

  2 

  3 hap=0

  4 i=1

  5 while [ $i -le 10 ]

  6 do

  7     hap=`expr $hap + $i`

  8     i=`expr $i + 1`

  9 done

 10 

 11 echo "계산 결과는 : " $hap

 12 exit 0





5. 기타 알아둘 내용

사용자 정의 함수

  1 #!/bin/sh

  2 

  3 hap() {

  4     echo `expr $1 + $2`

  5 }

  6 

  7 echo "10 + 20 excute "

  8 hap 10 20

  9 exit 0



eval : 문자열을 명령문으로 인식하고 실행

  1 #!/bin/sh

  2 str="ls -l"

  3 echo $str

  4 eval $str

  5 exit 0

 
set과 $(명령어)

  1 #!/bin/sh

  2 

  3 echo "This day is $(date) ."

  4 set $(date)

  5 

  6 echo $0

  7 echo $1

  8 echo $2

  9 echo $3

 10 echo $4

 11 echo $5

 12 

 13 exit 0