using OR in shell script

My shell script looks something like this...

if [[ $uptime -lt 0 ]];then
some code
fi

if [[ $questions -lt 1 ]];then
some code
fi

if [[ $slow -gt 10 ]];then
some code
fi

How do I use OR and have a single if clause?


Solution 1:

if [ $uptime -lt 0 -o $questions -lt 1 -o $slow -gt 10 ] ; then
    some code
fi

See man test for available syntax and options. The [ operator is just shorthand for test, so the above code is equivalent to:

if test $uptime -lt 0 -o $questions -lt 1 -o $slow -gt 10 ; then
    some code
fi

Solution 2:

You should be able to use || or -o I think as follows:

if [ $uptime -lt 0 ] || [ $questions -lt 1 ] || [ $slow -gt 10 ]; then
    some code
fi