Je utilise habituellement l'expansion de paramètre "Indiquer une erreur si Null ou non défini" pour m'assurer que les paramètres sont spécifiés. Par exemple:
#!/bin/sh
var1="${1:?[Veuillez spécifier le premier nombre à ajouter.]}"
var2="${2:?[Veuillez spécifier le deuxième nombre à ajouter.]}"
Ce qui donne alors ceci:
% ./test.sh
./test.sh: 2: ./test.sh: 1: [Veuillez spécifier le premier nombre à ajouter.]
% ./test.sh 1
./test.sh: 3: ./test.sh: 2: [Veuillez spécifier le deuxième nombre à ajouter.]
Du manpage:
${parameter:?[word]} Indique une Erreur si Null ou non Défini. Si le paramètre est
non défini ou null, l'expansion du mot (ou un message
indiquant qu'il n'est pas défini si le mot est omis) est
écrit dans la sortie standard d'erreur et le shell se termine avec
un statut de sortie non nul. Sinon, la valeur du
paramètre est substituée. Un shell interactif
n'est pas obligé de se terminer.