Inkrement einer variable Wert innerhalb einer while-Schleife in ein shell-Skript

Ich versuche Inkrementieren einer variable Wert in einer while-Schleife, aber ich erhöhen wollen es zweimal. Von "zweimal" ich meine Inkrement-variable mit dem Wert zum ersten mal, dann tun Sie etwas Betrieb und erhöhen Sie bereits Inkrementierte Wert einmal mehr, und dies alles innerhalb einer while-Schleife. Mein code sieht wie folgt aus:

    i=1
    setglobal="SET GLOBAL "
    while [ $i -le $# ]
    do
         assign=$setglobal$i=$($i+1)
         START=`date +%s`
         mysql $database -u $user -se "$assign;select
         here goes my database query, not important"
         END=`date +%s`
         echo $END - $START | bc>>output.txt
         i=$(($i+1))
         mysqld restart
    done

Und ich haben eine Liste von Argumenten an meine shell: innodb_change_buffer_max_size 16 key_buffer_size 1431655770, als 1., 2., 3. und 4. Argumente beziehungsweise. Also ich will die while-Schleife zu tun:

    SET GLOBAL innodb_change_buffer_max_size = 16

nach

    assign=$setglobal$i=$($i+1)

und

    SET GLOBAL key_buffer_size = 1431655770

nach

    i=$(($i+1))
    assign=$setglobal$i=$($i+1)

Als ein Ergebnis, in meinem output.txt ich sollte bekam die Laufzeit der einzelnen Abfragen, aber ich bekomme nur vier Nullen. Also ich denke, meine Schleife ist entweder nicht tun, diesen Teil "SET GLOBAL key_buffer_size = 512" richtig, oder es nicht tun, die richtige Schrittweite. Könnte mir jemand sagen, was falsch sein könnte mit meinem code?

InformationsquelleAutor user3344382 | 2014-03-04

Schreibe einen Kommentar