The option is provided for this: -q (or --quiet ). It tells diff to simply give the exit code to indicate whether the files were the same. So you can do this:
if diff -q "$dest_file" "$source_file"; then
or if you want to change two sentences:
if ! diff -q "$dest_file" "$source_file"; then
If you really wanted to do it your own way (that is, you need a way out), you should do this:
if [ -n "$diff_output" -o ... ]; then ... fi
-n means "check if the next line is non-empty. You must also surround it with quotation marks, so if it is empty, the test still has a line - you get your error because your test evaluates to some_other_condition -o -o some_other_condition2 that, as you can see, will not work.
source share