Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

bash: iterate over list of floating numbers

In bash script, I want to iterate over a list of values that I want to pass as parameters to a script in python. It turns out that $d and $minFreq aren't floats when passed to the python script. Why does this happen?

for d in {0.01, 0.05, 0.1}
do
    for i in {1..3}
    do
        someString=`python scrpt1.py -f myfile --delta $d --counter $i| tail -1`
        for minFreq in {0.01, 0.02}
        do
            for bValue in {10..12}
            do
                python testNEW.py $someString -d $bValue $minFreq
            done
        done
    done
done
like image 407
Ricky Robinson Avatar asked Aug 10 '12 13:08

Ricky Robinson


1 Answers

Either remove the spaces

for d in {0.01,0.05,0.1}

or don't use the {} expansion (it's not necessary here):

for d in 0.01 0.05 0.1

The same applies to the minFreq loop.


As written,

for d in {0.01, 0.05, 0.1}

the variable d is assigned the literal string values {0.01,, 0.05,, and 0.1}.

like image 190
chepner Avatar answered Nov 04 '22 01:11

chepner