Utilisez le $#
variable spéciale. Sa valeur est le nombre d'arguments. Donc si vous avez un script qui ne contient que :
echo $#
et exécutez-le comme ceci :
thatscript foo bar baz quux
Il imprimera 4.
Dans votre cas, vous voudrez peut-être faire quelque chose comme :
if [ $# -lt 2 ]; then
# TODO: print usage
exit 1
fi
En partant de l'exigence de la question que les arguments doivent contenir "au moins 2 choses", je pense qu'il pourrait être plus précis de vérifier :
if (( $# < 2 )); then
# TODO: print usage
exit 1
fi
Utilisation de l'expansion arithmétique ((
))
l'empêchera d'atteindre exit 1
pour toute valeur non égale à 2.
Si vous utilisez if [ $# -ne 2 ];
il déclenchera la condition pour n'importe quel nombre d'arguments autre que 2.
Edit :il semble que la réponse acceptée ait été mise à jour pour inclure un exemple équivalent (et plus portable ?) de cela.