Permission denied sur script schell (while)
Résolu
tibobo_77
Messages postés
1358
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Pour commencer je tien a préciser que ce n'est qu'un embryon et que je viens de démarrer le shell....
En gros c'est un explorateur de dossier.
Erreur en sortie:
ligne 28 =
Si quelqu'un puvais m'eclairer...
Pour commencer je tien a préciser que ce n'est qu'un embryon et que je viens de démarrer le shell....
En gros c'est un explorateur de dossier.
#!/bin/sh cpu_name=/home/wwhx/ (c'est un exemple) confirme="no" while test "$confirme" != "yes" do ls $cpu_name printf "\nChoisir un repertoire pour la mise a jour\n" read way_of_file cpu_name=""$cpu_name""$way_of_file"" printf "%s\n" "${cpu_name}" printf "Revenir au dossier precedant?\n(yes/no)\n" read confirme2 if [ "$confirme2" != "yes" ]; then printf "Est-ce le bon fichier? (no: continue l'exploration des dossiers\n(yes/no)\n" read confirme fi else cpu_name=echo ${cpu_name%/*/}"/" confirme= "" printf "\n\n\n\n" fi printf "%s" "${cpu_name}" done
Erreur en sortie:
./update_server.sh: 28: /home/wwhx/: Permission denied ./update_server.sh: 28: : Permission denied
ligne 28 =
done
Si quelqu'un puvais m'eclairer...
A voir également:
- Permission denied shell
- Classic shell - Télécharger - Personnalisation
- Classic shell c'est quoi ✓ - Forum Windows 10
- Trustedinstaller permission ✓ - Forum Windows
- Classic shell est il sain? ✓ - Forum Windows 8 / 8.1
- Commun.file_upload.access denied ✓ - Forum The Gimp
9 réponses
Essaie comme ça (il y avait un "fi" en trop), le script se lance, mais il y a encore des erreurs en fonction des choix ;-((
#!/bin/sh cpu_name="/home/wwhx/" confirme="no" while test "$confirme" != "yes" do ls $cpu_name printf "\nChoisir un repertoire pour la mise a jour\n" read way_of_file cpu_name="${cpu_name}${way_of_file}" printf "%s\n" "${cpu_name}" printf "Revenir au dossier precedant?\n(yes/no)\n" read confirme2 if [ "$confirme2" != "yes" ]; then printf "Est-ce le bon fichier? (no: continue l'exploration des dossiers\n(yes/no)\n" read confirme else cpu_name="${cpu_name%/*/}/" confirme= "" printf "\n\n\n\n" fi printf "%s" "${cpu_name}" done
drwxr-xr-x 43 wwhx wwhx4096 2009-10-23 11:34 /home/wwhx [1]+ Done geany update_server.sh
Donc normalement j'ai les droits...
Salut,
else
cpu_name=echo ${cpu_name%/*/}"/"
La syntaxe est mauvaise :
Devrait aller mieux ;-))
else
cpu_name=echo ${cpu_name%/*/}"/"
La syntaxe est mauvaise :
cpu_name="${cpu_name%/*/}/"
Devrait aller mieux ;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Thanks, ca m'a changé l'erreur :p
Ps: je suis vraiment désolé, j'ai vraiment du mal avec la synthaxe shell.... pour le moment ^^
./update_server.sh: 28: no: not found
Ps: je suis vraiment désolé, j'ai vraiment du mal avec la synthaxe shell.... pour le moment ^^
C'est ce que j'ai aussi...
Tant que je ne passe pas dans le else, il n'y a aucun problème, tout ce déroule comme prévu.
Mais si j'y passe, on me dit ligne "29 : no: not found".
La valeur de "cpu_name" est bien prise en compte (le printf final me donne bien le bon chemin)
Mais le "ls" de ce dernier me fait revenir a la dernière valeur de "cpu_name"
Exemple:
on commence dans "/home/wwhx/"
Je lui dit d'aller dans le bureau.
affichage: "/home/wwhx/bureau/"
Je me suis tromper je ne voulais pas allez la! Il me propose de revenir en arrière, je répond "yes"
affichage: "/home/wwhx/"
./update_server.sh: 25: no: not found
Et le "ls" début m'affiche :
ls /home/wwhx/bureau/
La ligne d'erreur varie, mais renvoie toujours a la ligne du "donne"
Tant que je ne passe pas dans le else, il n'y a aucun problème, tout ce déroule comme prévu.
Mais si j'y passe, on me dit ligne "29 : no: not found".
La valeur de "cpu_name" est bien prise en compte (le printf final me donne bien le bon chemin)
Mais le "ls" de ce dernier me fait revenir a la dernière valeur de "cpu_name"
Exemple:
on commence dans "/home/wwhx/"
Je lui dit d'aller dans le bureau.
affichage: "/home/wwhx/bureau/"
Je me suis tromper je ne voulais pas allez la! Il me propose de revenir en arrière, je répond "yes"
affichage: "/home/wwhx/"
./update_server.sh: 25: no: not found
Et le "ls" début m'affiche :
ls /home/wwhx/bureau/
La ligne d'erreur varie, mais renvoie toujours a la ligne du "donne"
Essaie comme ça :
#!/bin/sh #set -xv cpu_name="/home/wwhx/" confirme="no" while test "$confirme" != "yes" do ls $cpu_name printf "\nChoisir un repertoire pour la mise a jour\n" read way_of_file cpu_name="${cpu_name}${way_of_file}/" printf "%s\n" "${cpu_name}" printf "Revenir au dossier precedent?\n(yes/no)\n" read confirme2 if [ "$confirme2" != "yes" ]; then printf "Est-ce le bon fichier? (no: continue l'exploration des dossiers\n(yes/no)\n" read confirme else cpu_name="${cpu_name%/*/}/" cd ../ confirme="" printf "\n\n\n\n" fi printf "%s\n" "${cpu_name}" done
Toujours le "no: not found" mais ça marche ^^
Que change le "cd .." (je sais que ça remonte d'un répertoire, mais la je vois vraiment pas)?
Que change le "cd .." (je sais que ça remonte d'un répertoire, mais la je vois vraiment pas)?