메뉴 닫기

for명령문의 활용예제

프로그래밍을 조금이라도 공부하였으면 반복실행문으로서 for 문에 대해 알고 계실겁니다.
 
리눅스에도 for가 있는데 일반적으로 사용하는 방법과 크게 차이가 나지는 않지만 
리눅스에는 다르게 활용할 수 있는 기능도 있어 그부분에 대해 설명하고 예제를 몇가지 살펴보겠습니다.
 
일반적으로 for는 do  done 과 한세트로 활용되는데
for 문으로 조건을 만들고 do 와 done 사이에 명령을 실행합니다.
 
먼저 평범한 반복실행문으로서의 for는 다음과 같이 사용합니다.
 
for ((i=0;i<9;i++))
do
  echo $i
done
 
기본적인 조건반복문인데 for ((i=0;i<9;i++)) 부분을  풀어서 설명하면
i라는 변수에 0을 넣은 시작값을 가지고 i가 9보다 작으면 do와 done 사이의 명령을 실행. 마지막으로 i에 1을 더한다 라는 구문입니다.
echo 부분은 따로 설명 안해도 되겠죠 ^^; 이 활용법은 이미 많은 언어에서 활용이 되는 부분이기때문에 길게 설명하지는 않겠습니다.
 
그럼 이제 중요한 리눅스 특유의 for문 사용법에대해 알아보겠습니다.
 
바로 문자열을 단어단위로 끊어서 문자열이 끝날때까지 변수로 넣는것인데요.
간단한 예제를 보면 다음과 같습니다.
 
for NA in `ls`
do
  echo $NA
  echo “—반복중—“
  echo ”                      “
done
 
명령문을 살펴보면 일단 for 문은 제쳐두고 아래의 echo $NA를 보도면 다들 아시다싶이 변수 NA에 들어가있는 값을 출력하는 내용입니다.
그럼 for에서 NA에 ls 의 결과 값을 넣는것인데 여기서 중요한 부분이 있는데 ls 값을 한번에 모두 NA에 넣는것이 아니라는건데요 
ls 명령을 실행했을때 나오는 값을 단어단위로 끊어서 NA에 넣는것입니다.
즉 ls의 결과값이 “a b c d” 라고 한다면 NA에는 a부터 문자열이 끝날때까지 단어가 순서대로 입력되어 echo되는것입니다.
물론 —반복중— 이 표시되는것만 보셔도 대략 이해가 가시겠지만요 ^^;;
 
자 그럼 이 for문을 어디에 활용하느냐.  for문이 들어가고 제가 실제 사용하는 명령을 공개하겠습니다.
대부분 스크립트로 만들어서 단순 명령으로 쓸 수 있는건 정말 몇개 없지만요 ^^;;
그리고 for문만이 아니라 쉬운 명령이 들어가고 있으니 하나씩 분석해보면 꽤 유용하게 다른데에도 응용 하실 수 있을겁니다.
아. 그리고 이 명령들은 딱히 해설은 안하겠습니다. 생각보다 평범하고 간단한 명령들이라 직접 구조를 확인하는게 더 도움이 될테니까요
 
그럼 모두들 즐겁고 행복한 하루 되세요!
 
* 좀비프로세스 검색 후 kill 
for PN in `ps -ef |grep defunct | grep -v grep | awk ‘{print $2}’`
do
  echo $PN
  if [ $PN -gt 0 ]
  then
    kill -9 $PN
  fi
done
 
* 파일 내부의 특정 문자 검색하여 변경
for file_name in `grep -r ‘바뀔 문자‘ ./* | awk -F: ‘{print $1}’ | uniq`
do
    echo $file_name

    perl -p -i -e “s|바뀔 문자|바꿀 문자|g” $file_name
done
 
 
 
[polldaddy rating=”7739789″]  
 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다