Reputation: 51
I am brand new at bash
script. I want to write a script using forloop which will give me the following line and execute also these lines.
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 1000 -e 10000 -skip 10 -o 1.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 2000 -e 20000 -skip 10 -o 2.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 3000 -e 30000 -skip 10 -o 3.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 4000 -e 40000 -skip 10 -o 4.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 5000 -e 50000 -skip 10 -o 5.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 6000 -e 60000 -skip 10 -o 6.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 7000 -e 70000 -skip 10 -o 7.out
....
Upvotes: 0
Views: 237
Reputation: 11423
Using a basic bash for loop:
for i in {1..7}; do
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b ${i}000 -e ${i}0000 -skip 10 -o $i.out
done
Upvotes: 1
Reputation: 208043
You can also save a couple of lines of typing and get them all done in parallel with GNU Parallel:
parallel gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b {}000 -e {}0000 -skip 10 -o {}.out ::: {1..7}
Use parallel --dry-run
if you want to see what it would do but without actually doing anything.
Upvotes: 4
Reputation: 84642
You can use a C-style loop as well, e.g.
for ((i = 1; i < 8; i++)); do
echo "gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b $((i * 1000)) -e $((i * 10000)) -skip 10 -o $i.out"
done
Example Use/Output
$ for ((i = 1; i < 8; i++)); do
> echo "gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b $((i * 1000)) -e $((i * 10000)) -skip 10 -o $i.out"
> done
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 1000 -e 10000 -skip 10 -o 1.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 2000 -e 20000 -skip 10 -o 2.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 3000 -e 30000 -skip 10 -o 3.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 4000 -e 40000 -skip 10 -o 4.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 5000 -e 50000 -skip 10 -o 5.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 6000 -e 60000 -skip 10 -o 6.out
gmx trjconv -f md_0_1.xtc -s md_0_1.tpr -b 7000 -e 70000 -skip 10 -o 7.out
Upvotes: 1