rendered paste body#Bryan Drewery - bryan@shatow.net - GPL (Please email me contributions)#Usage: timeout "$CMD" "$SUCCESS_TEXT" $TIMEOUT [dots]#Run $CMD and look for $SUCCESS_TEXT and return 0#or return 1 after $TIMEOUT seconds of not seeing $SUCCESS_TEXT#Set dots to 1 to display a '.' every second (no newline)timeout() { cmd="$1" success_text="$2" timeout="$3" dots=0 if [ -n "$4" ]; then dots=$4 fi TMPFILE=`mktemp /tmp/timeout.XXXXXX` || exit 1 $cmd > $TMPFILE 2> /dev/null & #nc -z ${SERVER}.${DOMAIN} $PORT > $TMPFILE 2> /dev/null & PID=$! disown $! sleep 1 loop=1 while true; do grep "$success_text" $TMPFILE > /dev/null 2>&1 if [ 0 -eq $? ]; then break fi if [ $loop = $timeout ]; then break fi ((loop++)) if [ "$dots" = "1" ]; then echo -n "." fi sleep 1 done kill -9 $PID > /dev/null 2>&1 grep "$success_text" $TMPFILE > /dev/null 2>&1 status=$? rm -f $TMPFILE if [ 1 -eq $status ]; then return 1 fi return 0}