#!/bin/csh -f set ny = (no yes) if ($2 == "yesno") then @ i = $3 + 1 set pmpt = "$1 [$ny[$i]]: " else if ("$3" == "") then set pmpt = "${1}" else set pmpt = "$1 [$3]: " endif endif rpt: echo -n "$pmpt" set input = $< switch ($2) case number: set tmp = `echo $input | tr -d 0123456789.` if ("x$tmp" != x) then echo "Invalid number. Please try again." goto rpt endif breaksw case integer: set tmp = `echo $input | tr -d 0123456789` if ("x$tmp" != x) then echo "Invalid integer. Please try again." goto rpt endif breaksw case neginteger: if ("x$input" != x-1) then set tmp = `echo $input | tr -d 0123456789` if ("x$tmp" != x) then echo "Invalid integer. Please try again." goto rpt endif endif breaksw case file: if ("x$input" == "x") then set input = $3 endif if (! -e "$input") then echo The file $input "does not exist. Please try again." goto rpt endif breaksw case path: if ("x$input" == "x") then set input = "$3" endif if (! -e "$input") then foreach elt ($path) if (-e "$elt/$input") breaksw end echo The command $input "was not found. Please try again." goto rpt endif breaksw case yesno: if ("x$input" == xy || "x$input" == xyes) then set input = 1 else if ("x$input" == xn || "x$input" == xno) then set input = 0 else if ("x$input" != x) then echo 'Please answer "yes" or "no".' goto rpt endif breaksw default: breaksw endsw if ("x$input" == x) then set input = "$3" endif echo $input > $4