for f in *.doc; do (
IFS=-
set -- $f
echo "<li><h5>$1</h5><p>$3</p><a href='files/$*'>download</a></li>"
)
done
The part in parentheses is executed in a subshell, so changes to IFS variable are localized. A test:
$ touch 'info1 - inf2 - info 3.doc'
$ touch 'First name blabla - Second part bla boa - third part, unimportant.doc'
$ for f in *.doc; do (
> IFS=-
> set -- $f
> echo "<li><h5>$1</h5><p>$3</p><a href='files/$*'>download</a></li>"
> )
> done
<li><h5>First name blabla </h5><p> third part, unimportant.doc</p><a href='files/First name blabla - Second part bla boa - third part, unimportant.doc'>download</a></li>
<li><h5>info1 </h5><p> info 3.doc</p><a href='files/info1 - inf2 - info 3.doc'>download</a></li>