Eh bien, je suis actuellement un scripteur débutant. J'ai une connaissance de base d'autres langages de programmation tels que Javascript pour HTML, JScript, VB.NET et C++. (C++ Pas tellement, juste trempé mes pieds dans l'eau pour ça). Plus récemment, mon récent projet a tenté d'en apprendre le plus possible sur les scripts shell Bash. Le problème actuel consiste à comprendre les codes d'erreur d'état, ainsi qu'à vérifier si certains paramètres contiennent des répertoires ou s'ils existent. Je travaille à partir d'un livre, avec des tutoriels et des questions de révision. Malheureusement, il n'y a pas de clé de réponse, ou même des conseils pour cette question.BASH Aide à la création de scripts requise
- Afficher un message d'erreur et la sortie avec état 1 si aucun paramètre ne donne
- Afficher un message d'erreur et la sortie avec le statut 2 si la source est pas un répertoire
- Afficher un message d'erreur et la sortie avec le statut 3 si la destination n'existe pas ou n'est pas un répertoire
Ce qui précède est ce que je dois faire, jusqu'à présent le premier que je crois avoir fait correctement, sinon s'il vous plaît, corrigez-moi, ou me guider dans la bonne direction . Comme j'apprends mieux quand des échantillons sont donnés, j'ai pensé que je demanderais de l'aide.
if [ $? ]; then
echo "You must supply at least one parameter"
exit 1
fi
#The above is the part I am pretty sure is correct.
if [ $? -d $directory "$1" ]; then
echo "$directory is not a directory"
exit 2
fi
#The above was self written. I am almost positive it is wrong.
if [ $? -lt 2 ]; then
set "$1" .pwd
fi
#the above was given to me from the book as a reference point to start (tutorial)
Il doit y avoir un espace entre 'if' et' ['. «$ 1» et «$ 2» doivent être indiqués pour éviter la division du champ et la génération du chemin. '||' sépare les commandes de sorte que vous avez besoin de 'if [! -e "$ 2"] || [! -d "$ 2"]; then' (bien que le test '-e' soit redondant ici,' -d' renvoie déjà false s'il n'existe pas). – jilles
merci @jiles. Changé selon vos suggestions – Cfreak
Wow, maintenant que vous l'avez dit, j'aurais dû le faire moi-même. Je n'ai même pas essayé de l'essayer sur mon propre shell, mais juste de le regarder, il semble être 100% correct. J'apprécie la réponse rapide. Je vous remercie. –