Problem with reading from a properties file

Hi,

i have a properties file a.prop where entry is like
PROCESS_IDX=0

Now in my shell schript i am doing like this.
#!/bin/sh
. a.prop
..............
-.......................
while read line
do
# tokenize the string by ",".
var=(`echo $line | tr ',' ' '`)
echo $PROCESS_IDX --> is printing 16
but when i am giving like below
if [ "${var[$PROCESS_IDX]}" == "y" ]; then
it is giving me the below error
")syntax error: operand expected (error token is "

Thanks for your help.

---------- Post updated at 06:38 PM ---------- Previous update was at 06:33 PM ----------

and the same code works if i am putting PROCESS_IDX=0 in my shell script.

Pls help

Please use CODE tags to clean up the formatting there - it's very hard to read.
Also, I don't believe ${variable[index]} syntax works under bourne (you start your script with #!/bin/sh).
Make sure you are remembering to export the PROCESS_IDX variable in your properties file too.

Put the contents of the file.

I have an input file like

Code:
RMS_RPT_PERIOD_DIM,Table,NYTD_SLS_DM,GPS_SLS_DM1,NYTD_SLS_GPS_INT,RMS_DM,byreddys,7/31/2009,byreddys,7/31/2009,Y,//depot/eqr/salesgps/trunk/src/db/table,TBL_GPS_CONTACT_DETAILS.sql,1.1,,lakshmi,sql,y
GPS_SLS_DM1,Table,NYTD_SLS_GPS,GPS_SLS_DM1,NYTD_SLS_GPS_INT,GPS_SLS_DM_IN,byreddys,8/3/2009,byreddys,8/3/2009,Y,//depot/eqr/salesgps/trunk/src/db/schema,GPS_SLS_DM,1.1,,lakshmi,sql,yNow i want to read these records in a while loop one after another
My code is liek this.

Code:
Object_Name=0
OBJECT_TYPE=1
Source_DB_Name=2
Source_Schema=3
Target_DB_Name=4
Target_Schema=5
DATA_LOAD=10
Perforce_Directory_Name=11
Perforce_Script_Name=12
DB_TYPE_IDX=15
PROCESS_IDX=16
while read line
do
# tokenize the string by ",".
var=(`echo $line | tr ',' ' '`)
if [ "${var[$PROCESS_IDX]}" == "y" ]; then
log_it "entered to process record ${num}"
It works fine. But when i am declaring these values in a seperate file like
a.prop
Object_Name=0
OBJECT_TYPE=1
Source_DB_Name=2
Source_Schema=3
Target_DB_Name=4
Target_Schema=5
DATA_LOAD=10
Perforce_Directory_Name=11
Perforce_Script_Name=12
DB_TYPE_IDX=15
PROCESS_IDX=16
and my code now is
#!/bin/ksh
# Set up the environment
. a.prop
....
while read line
do
# tokenize the string by ",".
var=(`echo $line | tr ',' ' '`)
echo $PROCESS_IDX
if [ "${var[$PROCESS_IDX]}" == "y" ]; then
log_it "entered to process record ${num}"echo $PROCESS_IDX is printing 16
but
if [ "${var[$PROCESS_IDX]}" == "y" ]; is failing it says : arithmetic syntax error 16
Please help me to resolve this issue.

Once again, please use CODE tags to clean up the formatting there. It's very hard to read!

My Input file :
***************************************************************
RMS_RPT_PERIOD_DIM,Table,NYTD_SLS_DM,GPS_SLS_DM1,NYTD_SLS_GPS_INT,RMS_DM,byreddys,7/31/2009,byreddys,7/31/2009,Y,//depot/eqr/salesgps/trunk/src/db/table,TBL_GPS_CONTACT_DETAILS.sql,1.1,,lakshmi,sql,y
....................................
***************************************************************
Now i want to read these records in a while loop one after another
My code is like this.

[Code]
Object_Name=0
DB_TYPE_IDX=15
PROCESS_IDX=16
while read line
do
# tokenize the string by ",".
var=(`echo $line | tr ',' ' '`)
if [ "${var[$PROCESS_IDX]}" == "y" ]; then
log_it "entered to process record ${num}"
It works fine. But when i am declaring these values in a seperate file like
a.prop
Object_Name=0
OBJECT_TYPE=1
DB_TYPE_IDX=15
PROCESS_IDX=16

[code]
and my code now is
#!/bin/ksh
# Set up the environment
. a.prop
....
while read line
do
# tokenize the string by ",".
var=(`echo $line | tr ',' ' '`)
echo $PROCESS_IDX
if [ "${var[$PROCESS_IDX]}" == "y" ]; then
log_it "entered to process record ${num}"echo $PROCESS_IDX is printing 16
but
if [ "${var[$PROCESS_IDX]}" == "y" ]; is failing it says : arithmetic syntax error 16
Please help me to resolve this issue.

WTF, how many times do we have to tell you to put CODE tags around your code or file contents ?

Are you unable to read the requests in English ?

tyler_durden