The Stack Overflow podcast is back! Listen to an interview with our new CEO.
2 of 2 added 337 characters in body

First of all, you are using [ which is short hand for test. From man test:

  STRING1 != STRING2
         the strings are not equal

You're using wrong tool for the job. What you need is

 INTEGER1 -eq INTEGER2
         INTEGER1 is equal to INTEGER2

Second, you have multiple conditions to test here. Instead of using one lengthy if statement , try to sum the output of each variable, as glenn suggested in comments, and test that. Alternatively, evaluate the output of each command right after it exist. There's no point in running others, if you're going to quit because that command's output anyway.

Here's a looping approach:

for i in $X1 $X2 $X3 ; 
do 
    [ $i -ne 0 ] && { echo "something failed"; exit 1; }
done
echo "Everything OK"

The trick here is that you're doing same test for each and every one of the variables, and if that test fails, the script will never get to the "Everything OK" part