#!/bin/bash main () { print_runtime > /dev/null print_runtime } print_runtime () { pid=$(start_server) runtime=$(time_command wait_for_server) baseline=$(time_command wait_for_server) echo $runtime - $baseline | bc kill -9 $pid } start_server () { cd example rackup >/dev/null 2>&1 & echo $! } time_command () { local cmd=$* TIMEFORMAT="%3R" (time $cmd) 2>&1 } wait_for_server () { while true; do lsof -i :9292 >/dev/null if [[ $? == 0 ]]; then break fi done } main