Try:

 

Foo=`eval echo $file`

echo $Foo

 

Or something along those lines.

From: plug-discuss-bounces@lists.plug.phoenix.az.us [mailto:plug-discuss-bounces@lists.plug.phoenix.az.us] On Behalf Of Eric Cope
Sent: Wednesday, October 24, 2012 2:41 PM
To: Main PLUG discussion list
Subject: Bash script with env variables

 

Hello all,

I was not sure how to google this, so any pointers is appreciated.

 

I have a file, $FILELIST with an absolute file path on every line, with the caveat that the first portion of the path is an environment variable. For example:

 

$PROJ_ROOT/path/to/file.txt

$PROJ_ROOT/path/to/another/file.txt

 

My script looks like this:

 

for file in  `cat $FILELIST`

do

        if [ -f $file ]

        then

                echo "Copying $file"

                cp -f `echo $file` $DEST/.

        else

            echo "file not found: $file"

        fi

done

 

The problem is that the $file is not evaluated to the path. I just get "$PROJ_ROOT/path/to/file.txt' not found.

 

If I copy the text and run "more $PROJ_ROOT/path/to/file.txt" I see it just fine.

 

How do I get Bash to evaluate the $PROJ_ROOT env variable for the -f $file?

Thanks,

Eric