On Sat, May 05, 2001 at 02:34:47PM -0700, Karsten M. Self wrote: > This came up on another list. The problem involves testing existence of > a Unix shell variable from another program with limited system > interaction features. > > I usually write this in bash as: > > if [ x${MYVAR} = x ]; then > echo 'MYVAR doesn't exist (or isn't set)' > else echo "MYVAR exists, value: $MYVAR" > fi > > ...which essentially checks whether or not the variable has a non-null > value. But would report that $MYVAR doesn't exist if in fact it was set > equal to "". > > In contrast, csh and derivatives have: > > $?MYVAR > > ...which allows testing of presence of a variable. > > ...but I'm not aware of a similar bash/korn/bourne feature. Anyone?
#! /bin/sh ... if test -z ${MYVAR} ; then ... fi The [...] shorthand isn't guaranteed AFAIK. Also, be sure variables are always "declared" first, at least like: MYVAR = "" Some bourne shells don't like testing variables that don't exist yet. -- Eric G. Miller <egm2@jps.net>