for 문 사용 보기

현재 시스템에 찾아보려는 사용자를 여려명 한꺼번에 찾아, 그 결과를 보여주는 예제:

   cat snooper
   #!/bin/sh
   # 사용자가 현재 접속중인지 확인하는 스크립트
   for i in $*
   do
     if who | grep -s $i > /dev/null
     then
       echo $i : 접속 중.
     else
       echo $i : 사용 중이 아님.
     fi
   done

if 문 설명에서 나온 예제의 경우는 그 스크립트의 인자로 하나 밖에 사용할 수 없지만, 여기서 for 문을 이용해서, 여러 명의 사용자를 한꺼번에 확인해 볼 수도록 하고 있습니다.


다른 디렉토에 있는 같은 이름을 가진 여러 파일을 비교하는 경우:

   #!/bin/sh
   # "old" 디렉토리에 있는 같은 파일 비교하기
   for i in *
   do
     echo $i:
     cmp $i old/$i
     echo
   done

for 문에서 list-of-words 부분이 빠지면, 이것은 $* 변수값이 사용됩니다. 즉, 아래의 예제의 경우는 이 스크립트의 인자로 주어지는 이름의 크기가 0 바이트인 파일들을 만듭니다.

   #!/bin/sh
   # 여러 파일 만들기
   for i
   do
     > $i
   done

for 문이 사용되는 전형적인 예제들:

   #!/bin/sh
   # 현재 디렉토리에 있는 모든 파일을 대상으로,
   # 그, 개신 시간에 따라 특정 작업을 하는 경우
   for i in `ls -t`
   do
     ...
   done
   # fred 라는 문자열을 포함하지는 모든 줄에 대한 작업
   for i in `cat filelist | grep -v fred`
   do
     ...
   done
   # 이중 for 문. 하위디렉토리 검색
   for i in `for i in *
     do
       if test -d $i
       then
         echo $i
       fi
     done`
   do
     ...
   done

[차례] [찾기] [색인]