monucool
monucool

Reputation: 432

bash command error

i=0
while read line

    do
    echo "i is --- $i"
    #echo $line "\n"

    if (( $i > 0 ))
    then
    $Eda_package=$(echo $line | awk '{print $1}')
    $well_bias=$(echo $line | awk '{print $2}')
    $biasmap=$(echo $line | awk '{print $3}')
    $unified=$(echo $line | awk '{print $4}')
    echo "eda pack --$Eda_package  wellbias is --$well_bias biasmap is --$biasmap  unified-      -- $unified"
    fi
    i=$((i+1))
    done < config.list

In the above bash program I get an error:

./script.sh: line 9: =EDA_7p0: command not found

How do I fix this?

Upvotes: 1

Views: 255

Answers (2)

raul
raul

Reputation: 55

Let var1=1 and var2=2 now if you simply write $var2=$var1 then it will give you error that 2=1 command not found

When you initialize any variable you have to do it without $ with variable name on left side

Upvotes: 1

paxdiablo
paxdiablo

Reputation: 882646

Lines of the form:

$xyzzy=plugh

will have xyzzy substituted before they're executed so that they look like:

=plugh

assuming they're not yet set. If they are set, you'll probably get different behaviour but still almost certainly not what you want.

You should change your lines from (for one example):

$Eda_package=$(echo $line | awk '{print $1}')

to:

Eda_package=$(echo $line | awk '{print $1}')

The $ is not part of the variable name, it's an indication that the following word is a variable that should be substituted.

Upvotes: 5

Related Questions