Oh, joy. I've found another thing to hate about csh. If the last line of your script doesn't have a newline after it, that line won't be executed. It will be silently ignored. That isn't very useful.
If emacs knows you are editing a shell script, it will automatically put a newline at the end if you didn't do it yourself. But if you have an ordinary text file that you will run with source, it better have a newline at the end. You can get emacs to either ensure that or warn you about it by adding one of the following lines to your .emacs file:
;; Quietly add a newline if missing. (setq require-final-newline t) ;; Ask if you want a newline at end of file. (setq require-final-newline 'ask)
Googling for this problem, I found another nice csh rant.