Diff in bash script?

I've been toying around with makefiles and bash scripts and I'm interested in this:

Is it possible to get a boolean value from a diff(or something similar) so that I can use it in a bash script to evaluate an if statement(so that the user will not see the actual diff executing)?

3 Answers

If all you need is a byte-by-byte comparison, use cmp:

if cmp -s "$a" "$b"; then echo Same
else echo Differ
fi

This avoids wasting time for diff's difference finding algorithm.

1

Yes:

if diff "$file_a" "$file_b" &> /dev/null ; then echo "Files are the same"
else echo "Files differ"
fi

The manual is not clear on the return codes. However, diff should return always 0 when you compare two identical files.

diff -a $file1 $file2 > /dev/null 2>&1
if [ $? -eq 0 ]
then ...
fi
3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like