7장. 쉡 스크립트 프로그래밍
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 문
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