What is the difference between the &&, ||, -a, and -o Unix operators?
What are the restrictions on the usage of both types?
Is it simply that the && and || operators should be used when using flags in the condition?
As in:
[ "$1" = "yes" ] && [ -r $2.txt ]
versus:
[ "$1" = "yes" -a $2 -lt 3 ]