Script for automating regression testing
while : is a standard idiom for "loop forever" in bash. The colon (:) is a synonym for true.
Prefer $(command) to `command` ("backticks"). The former allows you to nest; the latter does not.
Though in your case, you don't need the backticks at all. These are for capturing the output of the command, which you don't use anywhere.
It isn't clear why you have the read SUBJECT inside each case -- you throw away the value in the very next statement.
Don't do this: lessc ccap-$BIO.less &gt; ccap-$BIO.css. (It's a classic mistake in shell scripting; everyone's been bit by it.) This will nuke the file -- it will be truncated by the shell, overwriting the contents before lessc has the chance to read it.


Aside from your code: if your goal is to regenerate the output files whenever one of the input files has changed, you should consider learning make. With a 10-20 line makefile, you can automatically regenerate whichever of the output files need updating whenever one of the input files change.