Environment Variables in text file and read command

I cannot get the following substitution ($ORACLE_SID) to work:

The variable ORACLE_SID is set to wardin my environment. It has been exported.

I have a text file called test.dat:
/u07/oradata/${ORACLE_SID}/extab/finmart/summit/ps_voucher_line_crnt_ex.dbf
/u07/oradata/ward/extab/finmart/summit/ps_voucher_line_crnt_ex.dbf

A basic version of my script is:

 
#!/bin/ksh
 
cat $FILE_DIR/test.dat | while read CURRENT_FILE
do
    ls $CURRENT_FILE
    echo ""
done

My Output:

/u07/oradata/${ORACLE_SID}/extab/finmart/summit/ps_voucher_line_crnt_ex.dbf: No such file or directory

/u07/oradata/ward/extab/finmart/summit/ps_voucher_line_crnt_ex.dbf

I have determined a workaround with sed:

 
 sed "s/\$ORACLE_SID/${ORACLE_SID}/" test.dat > test.dat.dbname

I have tried many variations, with double quotes, using cut, using a for loop, using back quotes, exporting ORACLE_SID (I already have it exported in my environment), etc.

Thanks!

Try:

eval ls $CURRENT_FILE

Welcome to the forum,
Alister

Thank you, works great! :b: