728x90
for 문
 지정된 범위 안에서 루프를 돌리는데 사용

 범위에 사용되는 값은 어떤 문자열의 집합이라도 가능

 표현식

   for variable in value_list

   do

           command

   done

 실행순서

   - variable 에 value_list의 첫 번째 단어가 지정

   - command가 실행

   - command가 끝나면 다시 variable에 value_list의 두 번째 단어

   - value_list의 단어들이 다 사용될 때까지 진행

① {예제1}
     $vi sample1
     #!/bin/sh
     for var in *
     do
             file_size='wc -c < $var'
             echo $var contains $file_size charaters
             if test $file_size -le 5120
             then
                          echo the file $var is a small file
             else
                          echo the file $var is a large file
             fi
     done
     $chmod +x sample5
     $./sample5
     sample5 contains 209 charaters
     the file sample5 is a small file
   


 while 문
 for 문으로 어떤 명령을 지정한 횟수만큼 실행시키기가 어려울 경우에 사용

 표현식

   while condition

   do

           command

   done

 실행순서

   - while과 do 사이의 command에서 되돌려주는 명령어의 종료 상태 값이 참인 경우에만 do와 done 사이의 command를 수행

   - 순환을 계속하다가 condition의 종료 상태값이 거짓인 경우에는 순환을 종료

   - 반환값이 참인 동안 계속 수행하므로 반환값이 항상 참일 경우에는 무한루프에 빠진다

① {예제1}
     $vi sample2
     #!/bin/sh
     count=1
     while [ $count -le 5 ]
     do
                   echo $count
                   count='expr $count + 1'
     done
     $chmod +x sample2
     $./sample2
     1
     2
     3
     4
     5
 
② {예제2}
     $vi sample3
     #!/bin/sh
     while [ $# -gt 0 ]
     do
                   echo "$# : $*"
                   shift
     done
     $chmod +x sample3
     $./sample3 1 2 3 4 5
     5 : 1 2 3 4 5
     4 : 1 2 3 4
     3 : 1 2 3
     2 : 1 2
     1 : 1
 
③ {예제3}
     $vi sample4
     #!/bin/sh
     echo $#
     echo $1
     echo "----------------------------"
     shift 2
     echo $#
     echo $1    
     $chmod +x sample4
     $./sample4 starting shell programing !
     4
     start
     ----------------------------
     2
     programming
   


 until 문
 while문과 비슷하지만 condition이 거짓일 동안만 실행

 표현식

   until condition

   do

           command

   done

① {예제1}
     $vi sample5
     #!/bin/sh
     until who | grep "$1" > /dev/null
     do
                   sleep 100
     done

728x90

'Programming > linux왕초보' 카테고리의 다른 글

linux 병렬포트(프린트포트) 제어  (0) 2008.10.13
리눅스 버젼확인은 어찌하나요???;;  (0) 2008.09.12
shell programming - 변수  (0) 2008.09.11
shell programming - 제어문  (0) 2008.09.11
shell programming - 제어문  (0) 2008.09.11
shell programming - 목록과 함수  (0) 2008.09.11
shell programming - 명령 실행  (0) 2008.09.11
shell programming  (0) 2008.09.11
shell programming - 명령어  (0) 2008.09.11
crontab 사용  (0) 2008.09.11

+ Recent posts