bash script bottleneck - vektor

hi

van egy script aminek kb percenkent kellene futnia, de az a gond hogy
37 masodpercig tart, es ebbol 26-ot a kovetkezo fv eszi meg, esetleg valami alternativa?
a script feladata tulajdonkeppen 1 vektormuveletet elvegezni kb $[ 0x100 * 3 * 3 ] adatparral
mindegyik vektor 6 tagu, szoval nem kellene az altalons fv feltetlenul...es azzal menne rendesen, de mivel az eval-oktol nem szabadulok meg ezert annyira nem elonyos

sajnos awk-ban nem vagyok annyira otthon...h jol tippelek az gyorsabb megoldas.
vagy megirom c-ben v perl-ben a teljes tablara vontakozo muveletet?

a problemas fv:


vbc()
{
        local i
        i=0
        echo "("
        for a in `eval echo "\\\${$1[@]}"`;do
                b=`eval echo "\\\${$3[$i]}"`
                i=$[ $i + 1 ]
                echo $[ $a $2 $b ]
        done
        echo ")"
}

pelda:
a=( 1 2 3 )
b=( 5 5 5 )
c=`vbc a + b`

udv.kirk

Hozzászólások

Csak annyit tudtam faragni rajta, hogy az eval-t csak egyszer hívjuk hat helyett. Elvileg 'az x változóban tárolt nevű változó értéke' az a

${!x}

, de ez nekem csak skalárra ment, tömbre nem.


#!/bin/bash

a=( 10 20 30 )
b=(  5  6  7 )

vbc()
{
    echo "(";
    eval 'for i in $(seq 0 2); do echo $((${'$1'[$i]}'$2'${'$3'[$i]})); done';
    echo ")";
}

c=`vbc a + b`
echo $c