이런...감격의 눈물이...
처음으로 제가 필요해서 만든 스크립트군요...
쉘스크립트에 대해서라고는 맨 처음에 #!/bin/sh 써줘야 된다는거만 알던 제가...
이걸 만들기 위해 이틀을 문서 뒤지고, 삽질하고, 맨페이지 뒤지고, 삽질하고,
밥먹고 와서, 삽질하고, 졸다가, 삽질하고....
결국엔 성공했습니다....^^;
동아리 서버에 접속해서 그 서버에 물린 내부네트워크 안에 어떤 IP의 컴퓨터가
살아있는지 검사하기 위해서 만들었습니다...물론 ping으로요...
제가 막힌 부분은 exec였습니다...결국 맨페이지에서 말도 안되는 해석을 해서
나름대로 해결을 봤습니다...^^;
리다이렉션도 좀 말썽이었죠...무한 삽질을 통해서 원하는 출력이 나오도록
했습니다...
아...기뻐라...^^;
이거 보시고 혹 제가 잘못 알고 있는 것이 있으면 알려주세요...
#!/bin/sh
echo "Input limit (192.168.2.$limit) : 현재 디렉토리에 result.ping으로 저장될 >것입니다."
#limit 변수값을 읽어들인다.
read limit
#cclass 변수값을 0으로 초기화한다.
cclass=0
while((cclass<$limit))
do
#cclass 변수에 1을 더한다.
let cclass=cclass+1
#어느호스트에 ping을 하는지 표시한다.
printf "192.168.2.$cclass : " >>./result.ping
#ping을 때려서 반응이 오는 호스트는 time이 표시되므로 그들을 표시한다.
ping -c 1 192.168.2.$cclass |grep time >>./result.ping
#개행문자를 넣는다.
printf "" >> ./result.ping
done
#while문의 결과값에서 반응이 없던 호스트들의 목록은 제외한다.
cat ./result.ping |grep ms >./result.ping
#...exec is replaced shell...--;;;
#exec를 사용하면 exec 이후의 문장을 실행하고 종료시켜버린다...
#아마도 자신이 실행되던 쉘을 대체하여 실행하고 나서 자신은 종료되지만
#대체된 쉘을 복구시키지 않기 때문에 다음 스크립트로 넘어가지 않는듯 하다.--Make better li
fe