#!/bin/bash cmd="$1" shift args="$@" pass=0 run_test(){ num=$1 expected=$2 got=$("$cmd" "$args") if cmp -s <(echo $got) <(echo $expected); then echo "Test #$num: $(printf '\e[1;32mPASS\e[0m')" pass=$((pass + 1)) else echo "Test #$num: $(printf '\e[1;31mFAIL\e[0m') Expected: $expected, got: $got" fi } run_test 1 $' A B C D B A ' <