#!/bin/bash -eu GOOD_STATUS=0 BAD_STATUS=1 SKIP_STATUS=125 PROBLEM_STATUS=127 tmp_file=$(mktemp) trap "rm -f '${tmp_file}'" EXIT grep -v '^ ' "$1" > "${tmp_file}" if grep -q bad "${tmp_file}"; then exit $BAD_STATUS fi # func_a containing '2' in its top line is BAD if grep -q 'func_a.*2' "${tmp_file}"; then exit $BAD_STATUS fi # func_b, func_c, and func_d with even values are bad in conjunction if grep -q 'func_b.*4' "${tmp_file}" && \ grep -q 'func_c.*6' "${tmp_file}" && \ grep -q 'func_d.*8' "${tmp_file}"; then exit $BAD_STATUS fi # If none of the BADness conditions are met exit $GOOD_STATUS