Tuesday, February 5, 2008

do something a given number of times (bash)

Like this (do from 1 to 34) ./intensity2cycle ./s_1_0001_sig2.txt.filtered ./cycleNUMBER NUBMER

for i in $(seq 1 34); do ./intensity2cycle ./s_1_0001_sig2.txt.filtered ./cycle$i $i; done

3 comments:

  1. Alternatively use the built-in arithmetic bash looping:
    for ((i=1; i<=34; i++)); do ./intensity2cycle ./s_1_0001_sig2.txt.filtered ./cycle$i $i; done

    ReplyDelete
  2. cheers, that looks like a better way of doing it.

    ReplyDelete
  3. better yet, brace expansion ...

    for i in {1..34}
    do
    ./intensity2cycle
    ./s_1_0001_sig2.txt.filtered
    ./cycle$i $i
    done

    This gives you better performance than the previous mentions; although, at 34 iterations, you won't see much of an improvement.

    ReplyDelete