잘 봤습니다.
처음으로 만든 스크립트가 감격스럽겠습니다.
그 심정 이해가 갑니다.
저같으면 이렇게 해 보겠습니다. ^^;
----------------------------------------------------------------------
#!/bin/sh
echo "Input limit (192.168.2.$limit) : 현재 디렉토리에 result.ping으로 저장될 >것입니다."
read limit
cclass=0
while((cclass<$limit))
do
let cclass=cclass+1
ping -c 1 192.168.2.$cclass > /dev/null 2>&1
[ $? -eq 0 ] && echo printf "192.168.2.$cclass : o.k">>./result.ping
done
----------------------------------------------------------------------
잘 아시겠지만 아래를 참조하시면..
http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/ : 이런...감격의 눈물이...
:
: 처음으로 제가 필요해서 만든 스크립트군요...
:
: 쉘스크립트에 대해서라고는 맨 처음에 #!/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 life
--
by kimio