Aide pour déboguer un petit script.sh
Lami René
lami at webestrie.com
Sam 10 Avr 13:56:27 UTC 2010
Michel Leunen a écrit :
> Le 09/04/10 23:32, Lami René a écrit :
>> Chez moi ça ne fonctionne toujours pas et les indices ne semple ne pas
>> mettre personne sur une solution !
> As-tu recopier les lignes de commande dans un fichier, sauvegarder ce
> fichier et l'as-tu rendu exécutable? Ensuite tu te mets dans le
> répertoir eoù tu l'as sauvegardé et tu le lances comme ceci:
>
> $ ./le_nom_du_fichier
>
> C'est de cette façon que je l'ai testé et comme cela qu'il doit être
> utiliser.
>
> Bon weekend à toi,
Salut Michel,
Merci pour ton aide !
J'ai tout repris à zéro. J'ai copié le contenu du script de la page Web
(chaque commende n'est que sur une seule ligne) dans un fichier texte
avec Kate et le script est :
#!/bin/bash
clear
while [ 1 -eq 1 ]
do
if ls ~/PointDeRestauration
then
echo " 1) Créer un point de restauration "
echo " 2) Restaurer un point "
echo " 3) Quitter "
echo " Taper le numéro de l'action que vous souhaitez ou CTRL-C
pour quitter ce script : "
read touche1
case "$touche1" in
1)
jour=$(date +%d)
mois=$(date +%m)
annee=$(date +%y)
dpkg --get-selections >
~/PointDeRestauration/$annee$mois$jour
echo " Point de restauration "+
~/PointDeRestauration/$annee$mois$jour +" est créé avec succès !"
;;
2)
ls ~/PointDeRestauration/*
echo " Quelle est la date de point de restauration
souhaitez-vous utiliser ? (AAMMJJ)"
read touche2
sudo dpkg --clear-selections
sudo dpkg --set-selections < ~/PointDeRestauration/$touche2
sudo apt-get dselect-upgrade
echo " Votre système a été restauré avec succès !"
;;
3)
break
;;
esac
else
mkdir ~/PointDeRestauration
fi
done
Le nom du fichier est « pr.sh » à la racine de mon home personnel «
/home/rene ».
J'ai donné le droit d'exécution au nouveau fichier avec la commande :
sudo chmod -R +rwx pr.sh
Pour exécuter le script, dans la console :
./pr.sh
Et ça me donne comme message d'erreur :
bash: ./pr.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou
dossier de ce type
Alors, je fais :
sh ./pr.sh
Et ça me donne comme message d'erreur :
: not found clear
./pr.sh: 12: Syntax error: word unexpected (expecting "in")
Alors, j'essaie avec bash :
bash ./pr.sh
Et ça me donne comme message d'erreur :
: commande introuvable
»pr.sh: line 12: Erreur de syntaxe près du symbole inattendu « in
'/pr.sh: line 12: ` case "$touche1" in
En conclusion, avec « ./pr.sh » le fichier n'est pas exécuté, avec « sh
./pr.sh » une commende du script provoque sont arrêt et avec « bash
./pr.sh » même problème, mais le message d'erreur est plus explicite,
c'est la ligne 12 qui serait en cause !
Si cela a son importance, note que je suis sous Kubuntu 9.10 32 bits
Est-ce que cela donne une piste de recherche pour corriger le problème ?
Note que j'ai modifié le Wiki pour qu'il corresponde à tes instructions
(le script est modifié comme ce que j'ai recopié puis j'ai ajouté la
commande pour le droit d'exécution et la commande d'exécution n'est plus
« sh ./pr.sh », mais « ./pr.sh » !
Merci encore pour ton aide !
L'ami René
Plus d'informations sur la liste de diffusion ubuntu-fr