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
fiThis avoids wasting time for diff's difference finding algorithm.
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