Two &s because a single & is bitwise and.
Perl borrowed this from /bin/sh, and with it, the option to and statements:
if test -n "$1"
then
echo $0: missing argument 1>&2
exit 1
fi
can also be written as
test -z "$1" &&
{ echo $0: missing argument 1>&2; exit 1; }