title: Bash loop ping successful
body: <p>I'm thinking that this needs to be changed to a while clause, at the moment it'll wait till all 10000 pings are done, I need it to return when the ping is successful. The program "say" is on OSX it makes the computer speak.</p>
  
  <pre><code>#!/bin/bash
  echo begin ping
  if ping -c 100000 8.8.8.8 | grep timeout;
  then echo `say timeout`;
  else echo `say the internet is back up`;
  fi
  </code></pre>
  
  <p>OK I don't have rights to answer my own question so here's my answer for it after playing around:</p>
  
  <p>Thanks, yeah I didn't know about $? until now. Anyway now I've gone and made this. I like that yours doesn't go forever but in my situation I didn't need it to stop until it's finished.</p>
  
  <pre><code>#!/bin/bash
  intertube=0
  echo "begin ping"
  while [ $intertube -ne 1 ]; do
          ping -c 3 google.com
          if [ $? -eq  0 ]; then
                  echo "ping success";
                  say success
                  intertube=1;
          else
                  echo "fail ping"
          fi
  done
  echo "fin script"
  </code></pre>