ans='!' while expr "X$ans" : "X!" >/dev/null; do read ans case "$ans" in !) sh echo " " echo -n "Your answer: " ;; !*) set `expr "X$ans" : "X!\(.*\)$"` sh -c "$*" echo " " echo -n "Your answer: " ;; esac done