[ "${line:0:1}" == "#" -a -z "$line" ] && continue should be [ "${line:0:1}" == "#" -o -z "$line" ] && continue
[ "${line:0:1}" == "#" -a -z "$line" ] && continue
should be
[ "${line:0:1}" == "#" -o -z "$line" ] && continue