본문으로 바로가기

쉘 스크립트 작성하기_(반복문)

category Security/shell scripts 2017. 10. 10. 19:03
  • for 구문
[표현식]
for VAR in VAR_LIST
do
statemnet
done


  • while 구문
[표현식]
while condition
do
statements
done

[참고] shift

shift는 인자를 하나씩 당겨쓴다. 


# cat shift.sh

 

 #!/bin/ksh


while [ $# -gt 0 ] 

do

    echo "$# : $*"

    shift 

done

 


# ./shift.sh 1 2 3 4 5

 

5 : 1 2 3 4 5

4 : 2 3 4 5

3 : 3 4 5

2 : 4 5

1 : 5

 


[참고] until 구문

while 구문의 부정 형태 거의 사용되고 있지 않다. 

[형식]

until condition

do

statements

done

  • break 명령어
내장 명령어 break는 루프를 즉시 탈출하고자 하는 경우에 사용된다. 

  • continue 명령어
continue 명령어는 지정한 조건이 참이면 제어 루프의 시작으로 되돌린다. ( continue 아래의 명령어는 모두 무시 )

  • 예제
#vi cat.sh

 

 #!/bin/bash

FILE1=/etc/vsftpd/ftpusers


for NAME in `cat $FILE1 | egrep -v '(^$|^#)'`

do

   echo "$NAME can't access to FTP SERVER"

done

 

-> ftpusers 안에 적힌 사용자들은 ftp 서비스를 사용할 수 없다. 

-> $와 # 으로 시작하는 것을 제외하고 하나씩 출력한다. 


# shift.sh

 

 #!/bin/bash


#  #./shift.sh -a -l -t

#  #./shift.sh -l -t -a


if [ $# -ne 3 ] ; then

  echo "Usage: $0 <OPT1> <OPT2> <OPT3>"

  exit 1

fi


while [ $# -gt 0 ]

do

  OPT1=`echo $* | awk '{print $1}'`

  shift


  case $OPT1 in

   -a) echo all ;;

   -l) echo list ;;

   -t) echo test ;;

    *) echo "[ERROR]"

  esac

done

 

-> 인자를 3개를 받는다. 

-> 인자의 개수가 0보다 크면 반복한다

-> 첫번째 인자를 OPT1에 넣고 case 문으로 골라 출력한다.

-> shift 로 인자를 하나씩 당겨 사용한다.





'Security > shell scripts' 카테고리의 다른 글

쉘 스크립트 예제  (0) 2017.10.10
쉘 스크립트 작성하기(조건문)  (0) 2017.10.02
쉘 스크립트_2  (0) 2017.10.02
쉘 스크립트  (0) 2017.09.27