I've got a few csh scripts where I need to check that certain environment variables are set before I start doing stuff, so I do this sort of thing:
if ! $?STATE then
echo "Need to set STATE"
exit 1
endif
if ! $?DEST then
echo "Need to set DEST"
exit 1
endif
which is a lot of typing. Is there a more elegant idiom for checking whether or not an environment variable is already set?
Notes:
I think the way you're doing it (an if
statement with a condition using the $?VAR
syntax, which evaluates to 1 if the variable is set, and 0 otherwise) is probably the most idiomatic csh
construct that does what you want.