#! /bin/sh fail () { echo "ERROR: $*" 1>&2 exit 1 } case $1:$2 in puzzle:) cat <<'EOT' { "Answers": ["answer"], "Pre": { "Authors": ["neale"], "Body": "I am a generated puzzle." } } EOT ;; file:moo.txt) echo "Moo." ;; file:*) fail "no such file: $1" ;; answer:moo) echo "correct" ;; answer:error) fail "you requested an error" ;; answer:*) echo "incorrect" ;; *) fail "What is $1" ;; esac