Run all three in order
printf '#!/bin/sh\nc=$(curl -s -o /tmp/p.html -w "%%{http_code}" URL)\n[ "$c" = 200 ] || { echo "FAIL status"; exit 1; }\ngrep -q "tutorial-card" /tmp/p.html || { echo "FAIL missing"; exit 1; }\ngrep -qE "undefined|NaN" /tmp/p.html && { echo "FAIL leak"; exit 1; }\necho PASS\n' | tee t2.sh && chmod +x t2.sh && ./t2.sh
Before you run it, say out loud what it will print. Then open the answer.
What it prints
PASS. Each failure prints its own reason so the output names the breakage.
Do not chain the assertions with && so that a later one runs after an earlier failure. Return on the first failure so the reason is the last line.