Il y a un programme que j'utilise, disons xyz , cela a des effets indésirables si j'exécute la commande nue sans arguments. Donc, je voudrais m'empêcher d'exécuter accidentellement le xyz commande sans arguments mais autorisez-la à s'exécuter avec des arguments.
Comment puis-je écrire un script shell de sorte que lors de l'appel de xyz sans arguments, il imprimera un message d'erreur et passera sinon tous les arguments au xyz programme ?
Réponse acceptée :
Vous pouvez vérifier la variable spéciale $# :
if [ $# -eq 0 ]; then
echo "No arguments provided!"
exit 1
fi
/usr/bin/xyz "[email protected]"
Ensuite, ajoutez un alias à votre ~/.bashrc;
alias xyz="/path/to/script.sh"
Maintenant, chaque fois que vous exécutez xyz , l'alias sera lancé à la place. Cela appellera le script qui vérifie si vous avez des arguments et ne lance que le vrai xyz commande si vous le faites. Évidemment, changez /usr/bin/xyz quel que soit le chemin complet de la commande.