vendredi 6 avril 2018

Unix If Then not working inside Do Loop

I'm trying to change specific variable values that correspond to different values of $i by implementing an IF THEN ELIF statement within my DO DONE statement. I've spent a few hours trying to solve this, but the result always repeats the same value for campaign_data_id and companion_id. The other values outside of the IF THEN do work correctly. Anyone know a solution?

#!/bin/sh 
for i in brand1 brand2 brand3 brand4 brand5 brand6 
 do 
 brand=$i
 campaign_id="$brand"_version2
 source_table=db_name."$brand"_table
 if [ "$brand"=brand1 ] 
    then 
      campaign_data_id=2059 
      companion_id=000495 
   elif [ $brand=brand2 ] 
    then 
      campaign_data_id=2118 
      companion_id=004994 
   elif [ $brand==brand3 ] 
    then 
      campaign_data_id=2181 
      companion_id001224 
   elif [ $brand==brand4 ] 
    then 
      campaign_data_id=2061 
      companion_id=000973 
   elif [ $brand==brand5 ] 
    then 
      campaign_data_id=2131 
      companion_id=003453 
   elif [ $brand==brand6 ] 
    then 
      campaign_data_id=2113 
      companion_id=003453 
   else 
    echo SETTINGS NOT COMPLETE 
fi

echo $brand $campaign_id $source_table $campaign_data_id $companion_id
done

Here is the output (which is incorrect)

brand1 brand1_version2 db_name.brand1_table 2059 000495
brand2 brand2_version2 db_name.brand2_table 2059 000495
brand3 brand3_version2 db_name.brand3_table 2059 000495
brand4 brand4_version2 db_name.brand4_table 2059 000495
brand5 brand5_version2 db_name.brand5_table 2059 000495
brand6 brand6_version2 db_name.brand6_table 2059 000495

Aucun commentaire:

Enregistrer un commentaire