2013-01-18 2 views
0

아래 스크립트를 사용하여 끝 부분에 출력 된 IP 주소를 가져온 다음 ping을 수행 할 수 있기를 원합니다.if 루프 내에서 출력을 ping합니다.

#!/usr/local/bin/bash 

echo -n "Enter server number:" 
read userinput 

lookupip="d $userinput" 

if [[ $userinput -lt 0 || $userinput -gt 9999 ]] #checks that the input is within the desired range 
then 
    echo "Input outside acceptable range." 
else 

#grep gets just the IP address 

$lookupip | grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' | sed '1 ! d' 
나는 출력이 작업을 수행하는 방법을 알아낼 수 없습니다

:

사용 "또는`grep 명령 주위에 (또는과 같이 변수에 넣어 같은
> or >> filename | xargs ping 

:

.
ipgrep=$(grepcommand) 
ipgrep=`grepcommand` 

또는 변수가 작동하지 않는 것

+0

당신이 몇 가지 오류를 게시 할 수 있습니까? 가능하다면 '-x'를 추가하여 게시판에 게시하십시오. (-x가 디버그 출력을 추가 함) – peteches

+0

Nevermind XD 방금 내가 할 수 있다는 것을 깨달았습니다. grep 다음에 xargs ping을 실행하면됩니다. 미안합니다. 변수에 grep을 입력하여 형식을 지정하는 방법을 알고 싶습니다. – Zippyduda

+0

당신이 해낸대로 작동해야합니다 ipgrep = $ (grepcmd); 핑 $ ipgrep. 문제를 해결 한 경우 다른 사람들이 귀하의 질문에 답변 해 주시기 바랍니다. 감사합니다 – peteches

답변

0

DERP를, 나는 단지 추가했다 :

| xargs ping -c 1 

후 :

sed '1 ! d' 
관련 문제