현재 시스템에 찾아보려는 사용자를 여려명 한꺼번에 찾아, 그 결과를 보여주는 예제:
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