#1 Le 25/06/2010, à 20:46
- rquennec
[Résolu] exécuter un script
Bonsoir à tous
Je ne comprends pas pourquoi, quand j'exécute une commande en console elle fonctionne parfaitement, et dès que j'essaie de faire la même chose via un script, ça ne fonctionne pas.
J'ai beau tout essayer, je ne pige pas.
Par exemple
cd /mon_repertoire
en console --> impec
en script sh --> can't cd to /mon_repertoire
qu'y a-t-il d'incorrect ?
merci pour votre aide
Dernière modification par rquennec (Le 29/07/2010, à 12:14)
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne
#2 Le 25/06/2010, à 21:05
- sunnycloud
Re : [Résolu] exécuter un script
Salut rquennec,
Comment lances-tu ton script et quel est le répertoire que tu tente d'accéder ?
Hors ligne
#3 Le 25/06/2010, à 21:14
- rquennec
Re : [Résolu] exécuter un script
je lance mon script de cette manière
sh /volume1/home/mon_script.sh
et j'essaie d'accéder à un répertoire présent dans /volume1
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne
#4 Le 25/06/2010, à 21:28
- sunnycloud
Re : [Résolu] exécuter un script
Et quel peux-tu poster la commande que tu entre en console et qui fonctionne, ainsi que son retour ?
Hors ligne
#5 Le 25/06/2010, à 21:55
- rquennec
Re : [Résolu] exécuter un script
par exemple
lpr /volume1/home/*.*
lance correctement l'impression des fichiers
si j'écris la même chose dans un script impression.sh
je lance mon script de cette manière
sh /volume1/home/impression.sh
j'ai le message d'erreur suivant
erreur - impossible d'accéder à /volume1/home - Aucun fichier ou dossier de ce type
c'est vraiment un mystère
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne
#6 Le 25/06/2010, à 22:21
- sunnycloud
Re : [Résolu] exécuter un script
On dirait un problème de permissions sur le répertoire en question, ou de privilèges utilisateur. Tu peux vérifier les permissions sur ton répertoire /volume1 ainsi que les 'privilèges utilisateurs' (Système>Administration>Utilisateurs et groupes>Paramètres avancés).
En lancant ton script, un nouveau processus est crée (différent de celui dans lequel tu tape la commande qui fonctionne dans ton terminal). Pour remédier temporairement au problème, tu peux essayer de lancer ton script dans le même processus que ton terminal, comme ça :
. /volume1/home/mon_script.sh
Dernière modification par sunnycloud (Le 25/06/2010, à 22:22)
Hors ligne
#7 Le 26/06/2010, à 06:41
- credenhill
Re : [Résolu] exécuter un script
hello
essaye
bash /volume1/home/impression.sh
Hors ligne
#8 Le 26/06/2010, à 07:21
- rquennec
Re : [Résolu] exécuter un script
On dirait un problème de permissions sur le répertoire en question, ou de privilèges utilisateur. Tu peux vérifier les permissions sur ton répertoire /volume1 ainsi que les 'privilèges utilisateurs' (Système>Administration>Utilisateurs et groupes>Paramètres avancés).
En lancant ton script, un nouveau processus est crée (différent de celui dans lequel tu tape la commande qui fonctionne dans ton terminal). Pour remédier temporairement au problème, tu peux essayer de lancer ton script dans le même processus que ton terminal, comme ça :
. /volume1/home/mon_script.sh
J'ai bien vérifié les permissions
Mon dossier volume1 est en lecture/écriture/exécution (777) pour tout le monde
Pour les privilèges utilisateurs, je ne sais pas trop comment vérifié car je suis sous Ubuntu Server
J'ai également essayé
. /volume1/home/mon_script.sh
et j'ai l'erreur suivante : /bin/sh : mauvais interpréteur : aucun dossier ou fichier de ce type
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne
#9 Le 26/06/2010, à 07:26
- rquennec
Re : [Résolu] exécuter un script
hello
essayebash /volume1/home/impression.sh
Je viens d'essayer la commande ci-dessus
Et j'ai à nouveau une erreur
Impossible d'accéder à /volume1/home - aucun fichier ou dossier de ce type
Quel binz
Merci quand même pour votre aide
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne
#10 Le 26/06/2010, à 07:43
- credenhill
Re : [Résolu] exécuter un script
que répond
file /volume1/home/impression.sh
Hors ligne
#11 Le 26/06/2010, à 07:45
- rquennec
Re : [Résolu] exécuter un script
que répond
file /volume1/home/impression.sh
POSIX shell script text executable
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne
#12 Le 26/06/2010, à 07:57
- credenhill
Re : [Résolu] exécuter un script
et
cd /volume1/home ; ./impression.sh
Hors ligne
#13 Le 26/06/2010, à 08:09
- rquennec
Re : [Résolu] exécuter un script
et
cd /volume1/home ; ./impression.sh
alors, si j'essaie
cd /volume1/home ; ./impression.sh
/bin/sh^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
et si j'essaie
cd /volume1/home ; sh ./impression.sh
/usr/bin/lpr : erreur - impossible dâaccéder à « /volume1/home » - Aucun fichier ou dossier de ce type
j'en perds mon latin
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne
#14 Le 26/06/2010, à 10:09
- credenhill
Re : [Résolu] exécuter un script
AAh, voila, c'est un fichier DOS qui contient des ^M
exécuter
sed -i 's/\r//g' /volume1/home/impression.sh
et re-essayer
Hors ligne
#15 Le 26/06/2010, à 10:19
- Onclebenz
Re : [Résolu] exécuter un script
euh...clic droit sur ton fichier, coche la case pour le rendre executable
et tu tape en console: "./nomdufichier" sans espace (place toi sur le repertoire du fichier au préalable" ou bien ca: --> "/home/tonnomd'user/chemindufichier/./nomdufichier" se qui revient au meme.
PS: pour le rendre executable en ligne de commande chmod +x ./nomdufichier
+++
Dernière modification par Onclebenz (Le 26/06/2010, à 10:23)
Hors ligne
#16 Le 26/06/2010, à 11:19
- fabux
Re : [Résolu] exécuter un script
Salut,
sûrement une connerie mais tu mets bien le shabang (#!/bin/bash par exemple) en tête de ton script?
Et ton script tu le lances bien dans le dossier où il se trouve? ex: s'il est dans le dossier Script de ton répertoire personnel avec pour nom test.sh (donc ~/Script/test.sh) et que tu essai de le lancer par sh test.sh alors que tu n'est pas dans le dossier Script, il aura du mal.
May linux be with you
Comment poster un message.
Je me présente dans la doc
Hors ligne
#17 Le 27/06/2010, à 07:37
- rquennec
Re : [Résolu] exécuter un script
AAh, voila, c'est un fichier DOS qui contient des ^M
exécutersed -i 's/\r//g' /volume1/home/impression.sh
et re-essayer
Bonjour à tous,
Impec, merci beaucoup
Je n'aurais jamais pensé à ça.
Effectivement, j'avais créé mon fichier sous windows et à aucun moment je n'ai essayé de le créer via la console d'Ubuntu.
Ca va me servir de leçon pour les prochaines fois.
Pour répondre à fabux, oui, j'ai bien mis en première ligne du fichier #!/bin/sh
En tout cas, tout est rentré dans l'ordre avec
sed -i 's/\r//g' /volume1/home/impression.sh
Encore merci à tous
Proxmox pve-manager/3.4-11/6502936f (running kernel: 2.6.32-40-pve)
Debian 7.9
Ubuntu 10.04.4 LTS / 12.04.5 LTS / 14.04.3 LTS
CentOS release 5.11 (Final)
Hors ligne