RED='\033[0;91m' GREEN='\033[0;92m' YELLOW='\033[0;93m' NC='\033[0m' pass=0 fail=0 XML="" function green { (( pass += 1 )) printf "%s: ${GREEN}$2${NC}\n" "$1" XML+=" \n" } function yellow { (( fail += 1 )) printf "%s: ${YELLOW}$2${NC}\n" "$1" XML+=" \n $2\n \n" } function red { (( fail += 1 )) printf "%s: ${RED}$2${NC}\n" "$1" XML+=" \n $2\n \n" } function finish_suite { printf "%s: Passed ${pass} out of $(( pass + fail ))\n\n" "$1" XML=" \n$XML \n" # Note: we use echo -e to escape \n characters echo -e "$XML" >> "$DIR/tests.xml" XML="" pass=0 fail=0 }