Utilice el $#
variable especial. Su valor es el número de argumentos. Entonces, si tiene un script que contiene solo:
echo $#
y ejecutarlo así:
thatscript foo bar baz quux
Imprimirá 4.
En su caso, es posible que desee hacer algo como:
if [ $# -lt 2 ]; then
# TODO: print usage
exit 1
fi
Siguiendo el requisito de la pregunta de que los argumentos deben contener "al menos 2 cosas", creo que podría ser más preciso verificar:
if (( $# < 2 )); then
# TODO: print usage
exit 1
fi
Usando la expansión aritmética ((
))
evitará que esto llegue a exit 1
para cualquier valor que no sea igual a 2.
Si usa if [ $# -ne 2 ];
activará el condicional para cualquier número de argumentos que no sean 2.
Editar:parece que la respuesta aceptada se actualizó para incluir un ejemplo equivalente (¿y más portátil?) de esto.