1
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

上記の bash プログラムでは、次のエラーが発生します。

./script.sh: 9 行目: =EDA_7p0: コマンドが見つかりません

これを修正するにはどうすればよいですか?

4

2 に答える 2

5

フォームの行:

$xyzzy=plugh

実行される前にxyzzy 置換され、次のようになります。

=plugh

まだ設定されていないと仮定します。それら設定されている場合、おそらく異なる動作が得られますが、それでもほとんどの場合、希望どおりにはなりません。

行を次のように変更する必要があります (一例として):

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

に:

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

は変数名の一部ではありません。これ$は、次の単語置換されるべき変数であることを示しています。

于 2012-06-09T08:04:18.127 に答える
1

ここで var1=1 と var2=2 とします。単純に $var2=$var1 と記述すると、2=1 コマンドが見つからないというエラーが表示されます。

変数を初期化するときは、左側に変数名を付けて $ なしで実行する必要があります

于 2012-06-09T08:12:47.653 に答える