loop does not execute in bash script?

I have a very basic bash shell script, which has many "while... done; for .... done" loop clauses, like the following

~~
#!/bin/bash

while blablalba; do
....
done < /tmp/file

for line in `cat blablabla`; do grep $line /tmp/raw ; done > /tmp/1;

while blablalba2; do
....
done < /tmp/file2
~~

I noticed there are some loop conditions will never be executed, for example,

"for line in `cat blablabla`; do grep $line /tmp/raw ; done > /tmp/1;"

I am sure all the the loop clauses are right, since I can execute them without problem in command line, so whats wrong with my script? what should I pay attention?

Thanks!

while blablalba; do
will attempt to run the command blablalba and if the command succeeds (as indicated by the exit code), the statements in the loop will run.

Somehow off-topic,
but you don't need a "for loop" for that:

grep -f blablabla /tmp/raw > /tmp/1

Regards
Dimitre