Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/06/2010, à 21: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, à 13: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, à 22: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, à 22: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, à 22: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, à 22: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, à 23: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, à 23:22)

Hors ligne

#7 Le 26/06/2010, à 07:41

credenhill

Re : [Résolu] exécuter un script

hello
essaye

bash /volume1/home/impression.sh

Hors ligne

#8 Le 26/06/2010, à 08:21

rquennec

Re : [Résolu] exécuter un script

sunnycloud a écrit :

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, à 08:26

rquennec

Re : [Résolu] exécuter un script

credenhill a écrit :

hello
essaye

bash /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, à 08:43

credenhill

Re : [Résolu] exécuter un script

que répond

file /volume1/home/impression.sh

Hors ligne

#11 Le 26/06/2010, à 08:45

rquennec

Re : [Résolu] exécuter un script

credenhill a écrit :

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, à 08:57

credenhill

Re : [Résolu] exécuter un script

et

cd /volume1/home ; ./impression.sh

Hors ligne

#13 Le 26/06/2010, à 09:09

rquennec

Re : [Résolu] exécuter un script

credenhill a écrit :

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, à 11: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, à 11: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, à 11:23)

Hors ligne

#16 Le 26/06/2010, à 12: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.

Hors ligne

#17 Le 27/06/2010, à 08:37

rquennec

Re : [Résolu] exécuter un script

credenhill a écrit :

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

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