I am trying to run a for loop on the terminal where I want to send each iteration to background process so that all of them run simultaneously.
Following is the command
&
and ;
both terminate the command that precedes them.
You can't write & ;
any more than you could write ; ;
or & &
, because the language only allows a command to be terminated once (and doesn't permit a zero-word list as a command).
Thus: for i in *.src; do fastq-dump --split-files "$i" & done
is perfectly correct as-is, and does not require an additional ;
.