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...
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.
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