Tiago Veloso
Tiago Veloso

Reputation: 8563

Bash scripting know the result of a command

I am writing a bash script to run an integration test of a tool I am writing.

Basically I run the application with a set of inputs and compare the results with expected values using the diff command line tool.

It's working, but I would like to enhance it by knowing the result of the diff command and print "SUCCESS" or "FAIL" depending on the result of the diff.

How can I do it?

Upvotes: 2

Views: 5220

Answers (3)

Dennis Williamson
Dennis Williamson

Reputation: 360345

Also, in Bash you can diff the outputs of commands directly using process substitution:

if diff <(some_command arg1) <(some_command arg1) > /dev/null 2>&1
then
    echo "They're the same."
else
    echo "They're different."
fi

Upvotes: 2

exic
exic

Reputation: 2678

if diff file1 file2; then
    echo Success
else
    echo Fail
fi

If both files are equal, diff returns 0, which is the return code for if to follow then. If file1 and file2 differ, diff returns 1, which makes if jump to the else part of the construct.

You might want to suppress the output of diff by writing diff file1 file2 >/dev/null instead of the above.

Upvotes: 6

Igor
Igor

Reputation: 2783

The $? variable holds the result of the last executed command.

Upvotes: 5

Related Questions