[Linux] shell script programming 2
programming/os

[Linux] shell script programming 2

13. shell script programming 2

shell script programming 1 게시글에 이어서 진행합니다.


13.2 실습예제


13.2.9 and, or 연산자


and 연산자

if [ A ] && [ B ]

if [ A && B ] → error

if [ A ] -a [ B ]


or 연산자

if [ A ] || [ B ]

if [ A ] -o [ B ]


공백에 주의해서 작성해야 함, if[A] → error


-s : 크기가 0이 아니면

then : 다음 라인에 작성하거나 ; 뒤에 작성


gedit andor.sh


#!/bin/sh

echo "input file name:"

read fname

if [ -f $fname ] && [ -s $fname ] ; then

head -5 $fname

else

echo "file not found or size 0"

fi

exit 0


chmod 755 andor.sh


./andor.sh




13.2.10 for 반복문

for 변수 in 값1 값2 값3 ...

do

반복할 문장

done


gedit forin1.sh 


#!/bin/sh

hap=0

for i in 1 2 3 4 5 6 7 8 9 10

do

hap=`expr $hap + $i`

done

echo "sum =" $hap

exit 0


chmod 755 forin1.sh


./forin1.sh




13.2.11 while 반복문

while [ 조건식 ]

do

반복할 문장

done


gedit while1.sh


#!/bin/sh

while [ 1 ]

do

echo "centos 7"

done

exit 0


chmod 755 while1.sh


./while1.sh


종료하는 방법 : Ctrl + C

다른 터미널에서 종료(-9 강제종ㄹ)

프로세스ID를 찾음


ps -ef | grep while1.sh


위에서 찾은 프로세스ID를 입력

kill -9 프로세스ID




gedit bce.sh


#!/bin/sh

echo "input(b:break, c:continue, e:exit)"

while [ 1 ] ; do

read input

case $input in

b | B)

break;;

c | C)

echo "continue..."

continue;;

e | E)

echo "exit..."

exit 1;;

esac

done

echo "end..."

exit 0


chmod 755 bce.sh