Assign stdout to a variable

Hi.

I`m working in on a script that will be used to ping a remote computer and create a file, that i will read with php, and present on a webpage.

I export a file (input.txt) with php that i will run throug my script and return a file (output.txt).
The input format is like this; Index IP-router IP-server:
1 10.10.10.2 10.2.1.0
2 15.4.2.3 32.12.15.0
3 10.0.0.1 10.3.2.1

And I want the output to look like this (text i npharantes not included in file)
1 0 0 (If ping-commands succeed)
2 1 1 (If both ping command fails)
3 0 1 (If router respondsm and server fails)


I am not able to get the right parts from my input file, assigned to the corresponding variable, any tip?

Regards,
Anders
while read line; do $line

echo $line | cut -d' ' -f1
index=$?
echo $line | cut -d' ' -f2
routerip=$?
echo $line | cut -d' ' -f3
serverip=$?

ping -c1 $routerip | grep -q "64 bytes from $routerip"
routerstatus=$?
ping -c1 $serverip | grep -q "64 bytes from $serverip"
serverstatus=$?

#echo $index
#echo $routerip
#echo $serverip
#echo "$index Router ($routerip) ping status: $routerstatus"
#echo "$index Server ($serverip) status: $serverstatus"
#echo "$index $routerstatus $serverstatus" >>output.txt;
done < input.txt
end

Open in new window

andomanAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
gremwellConnect With a Mentor Commented:
<code>
echo $line | cut -d' ' -f1
index=$?
</code>

should be written as
<code>
index=`echo $line | cut -d' ' -f1`
</code>

Also, if you send a single packet, you can ignore the output of ping and just check its exit code:

<code>
abb@d820:~$ ping -c 1 127.0.0.1 > /dev/null 2>&1
abb@d820:~$ echo $?
0
abb@d820:~$ ping -c 1 1.2.3.4 > /dev/null 2>&1
abb@d820:~$ echo $?
1
</code>

Perhaps you want to have a look at <a href="http://nmap.org/book/nping-man.html">nping</a> and <a href="http://www.bitwizard.nl/mtr/">mtr</a> tools. Both can produce machine parseable output and nping can give you a state of TCP ports in addition to ICMP.
0
 
andomanAuthor Commented:
Great, thanks. I`ll might look into nmap.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.