A idéia é executar o servidor em segundo plano e, em seguida, fazer o grep em sua saída, contanto que a string esperada apareça em 'Something 3'
( 'Server Initialized'
no seu caso)
#!/bin/bash
main()
{
output=$(mktemp "${TMPDIR:-/tmp/}$(basename 0).XXX")
server &> $output &
server_pid=$!
echo "Server pid: $server_pid"
echo "Output: $output"
echo "Wait:"
until grep -q -i 'Something 3' $output
do
if ! ps $server_pid > /dev/null
then
echo "The server died" >&2
exit 1
fi
echo -n "."
sleep 1
done
echo
echo "Server is running!"
}
server()
{
i=0
while true; do
let i++
echo "Something $i"
sleep 1
done
}
main "$@"