#!/bin/sh valid=0 validate() { [ \ -n "${byr}" -a \ -n "${iyr}" -a \ -n "${eyr}" -a \ -n "${hgt}" -a \ -n "${hcl}" -a \ -n "${ecl}" -a \ -n "${pid}" \ ] && valid=$((valid + 1)) unset byr iyr eyr hgt hcl ecl pid cid } while :; do read -r line last=$? if [ -n "${line}" ]; then for pair in $line; do var=${pair%:*} val=${pair#*:} eval "${var}=${val}" done else validate fi [ $last -ne 0 ] && break done validate echo $valid