#!/bin/bash set -e STRINGS=$(mktemp) ERRORS=$(mktemp) trap "rm $STRINGS; rm $ERRORS;" EXIT FILE=$1 shift 1 while getopts "f:e:" opt; do case $opt in f) echo "$OPTARG" >> $STRINGS;; e) echo "$OPTARG" >> $STRINGS ; echo "$OPTARG" >> $ERRORS;; esac done shift $((OPTIND -1)) echo "Waiting for $FILE to say one of following strings" cat $STRINGS while ! egrep -wf $STRINGS $FILE; do sleep 2 done if egrep -wf $ERRORS $FILE; then exit 1 fi