[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: csh: how to use indirect ref to env vars



On Wed, 2008-06-25 at 08:03 -0700, ss11223 wrote:
> On Jun 25, 9:40 am, michael <c...@networkingnewsletter.org.uk> wrote:
> > Hi, I have acshscript in which I'd like to do set up a list of vars
> > and then to chk each of these are set, something like the below.
> > However, I can't find the magic incantation that allows to to check
> > ${$Vars} eg if $InMetFiles is set on the first loop - suggestions
> > welcome!
> >
> > #!/bin/csh
> > foreach Vars (InMetFiles InTerFile OutDir)
> >   echo Checking $Vars\.\.\.
> >   if ( ${?Vars} == 0) then
> >     echo $Vars not set \- aborting
> >     exit 1
> >   endif
> > end
> >
> > --
> > To UNSUBSCRIBE, email to debian-user-REQU...@lists.debian.org
> > with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
> 
> its ugly but I think this works
> 
> #!/bin/csh
> 
> foreach Vars (Var1 Var2 Var3)
>     echo checking $Vars\.\.\.
>     setenv temp '${'$Vars'}'
>     setenv temp2 `eval echo 'X'$temp >&/dev/null`
>     if ( "$status" != "0" ) then
>         echo $Vars not set \- aborting
>         exit 1
>     endif
> end
> 

it only works if csh is invoked without -e (stop on error)


Reply to: