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 09/06/2013, à 18:19

infotoni

Question de script sh

Bonjour,

Où placer mes fichiers de scripts sh, faut-il créer un répertoire batsh et dans quel répertoire bin, avec quoi faut-il les exécuter ?

Cordialement,infotoni,


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#2 Le 09/06/2013, à 18:36

nesthib

Re : Question de script sh

Il faut − qu'ils soient exécutables, − qu'ils comportent un shebang (#!/bin/bash) et − qu'ils soient dans un dossier du PATH.

echo $PATH

par défaut, avec bash sous ubuntu, si tu crées un dossier ~/bin celui-ci sera ajouté au PATH. Tu peux aussi le faire manuellement en ajoutant à ton ~/.bashrc :

PATH=$"/ton/dossier/de/scripts:$PATH"

L'ordre des dossiers dans le PATH détermine la priorité d'exécution en cas de collision sur le nom.

Pour les exécuter il suffit d'appeler leur nom :

mon_script

Si le script n'est pas dans le PATH il faut donner un chemin non ambigu (relatif au dossier courant ou absolu) :

./mon_script
~/scripts/mon_script
/home/…/scripts/mon_script

Quant au programme qui les exécute, tout dépend du langage et c'est pour ça que tu précises le shebang. Sans shebang tu pourrais explicitement appeler l'interpréteur :

bash mon_script

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 10/06/2013, à 10:04

infotoni

Re : Question de script sh

Salut,

J'ai beaucoup de scripts sh et je voudrais les placer quelque part pour pouvoir les executer. Comment créer un dossier "Mes_Scripts" dans le dossier bin. J'ai essayé bouton droit "Créer un nouveau dossier" et cela ne marche pas.

Cordialement.


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#4 Le 10/06/2013, à 10:10

tiramiseb

Re : Question de script sh

Tout cela t'a été détaillé par nesthib dans le message auquel tu réponds !

Version courte :
1/ tu crées un répertoire "bin" dans ton dossier personnel
2/ tu y places tous tes scripts
3/ tu te déconnectes et tu te reconnectes

Et voilà, tes scripts sont accessibles directement comme n'importe quelle commande.

Hors ligne

#5 Le 10/06/2013, à 11:59

infotoni

Re : Question de script sh

Salut,

J'ai fait les trois fases comme vous me l'indiquez très bien, ensuite je suis allé dans un terminal et j'ai suivi les instructions de nesthib pour modifier le PATH. Helas cela n'a pas marché "commande introuvable". Je vous rappèle que j'ai créé un dossier bin/scripts/ dans dossier personnel avec mes sources sh à l'intèrieur.

Cordialement.

Dernière modification par infotoni (Le 10/06/2013, à 12:01)


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#6 Le 10/06/2013, à 12:06

tiramiseb

Re : Question de script sh

ensuite je suis allé dans un terminal et j'ai suivi les instructions de nesthib pour modifier le PATH.

C'est soit le répertoire ~/bin, soit la modification du PATH.

Helas cela n'a pas marché "commande introuvable".

Donne le détail ! Qu'as-tu tapé ? Fais un copier-coller du terminal, prompt compris.

Je vous rappèle que j'ai créé un dossier bin/scripts/

Si tu veux n'avoir pas besoin de modifier la variable PATH, tu ne dois pas créer "bin/scripts", tu dois créer "bin".
Je n'ai nulle part indiqué de faire un sous-répertoire dans "bin", j'ai indiqué de créer "bin" et de mettre tes scripts là-dedans.

Hors ligne

#7 Le 10/06/2013, à 12:19

infotoni

Re : Question de script sh

tony@tony-GA-8SIMLNF:~$ premierscriptshell0.sh
premierscriptshell0.sh : commande introuvable
tony@tony-GA-8SIMLNF:~$ PATH=$"/BIN/SCRIPTS/SCRIPTS:$PATH"
tony@tony-GA-8SIMLNF:~$ PREMIRSCRIPTSHELL0.SH
PREMIRSCRIPTSHELL0.SH : commande introuvable
tony@tony-GA-8SIMLNF:~$ PATH=$"/BIN/SCRIPTS:$PATH"
tony@tony-GA-8SIMLNF:~$ PREMIRSCRIPTSHELL0.SH
PREMIRSCRIPTSHELL0.SH : commande introuvable
tony@tony-GA-8SIMLNF:~$  PREMIRSCRIPTSHELL0
PREMIRSCRIPTSHELL0 : commande introuvable
tony@tony-GA-8SIMLNF:~$ PATH=$"/bin/scripts:$PATH"
tony@tony-GA-8SIMLNF:~$ PREMIRSCRIPTSHELL0
PREMIRSCRIPTSHELL0 : commande introuvable


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#8 Le 10/06/2013, à 12:29

infotoni

Re : Question de script sh

Salut,

J'avais fait un faute dans le nom du fichier. Voici la nouvelle capture.

tony@tony-GA-8SIMLNF:~$ PATH=$"/bin/scripts/SCRIPTS:$PATH"
tony@tony-GA-8SIMLNF:~$ premierscriptshell0
premierscriptshell0 : commande introuvable
tony@tony-GA-8SIMLNF:~$


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#9 Le 10/06/2013, à 12:35

miniSeb

Re : Question de script sh

infotoni a écrit :

Je vous rappèle que j'ai créé un dossier bin/scripts/ dans dossier personnel avec mes sources sh à l'intèrieur.

infotoni a écrit :

tony@tony-GA-8SIMLNF:~$ PATH=$"/bin/scripts/SCRIPTS:$PATH"
tony@tony-GA-8SIMLNF:~$ premierscriptshell0
premierscriptshell0 : commande introuvable
tony@tony-GA-8SIMLNF:~$

Tu n'as pas indiqué le bon chemin dans ton export de la variable $PATH. Tu as mis /bin/scripts au lieu de ~/bin/scripts (si j'ai bien suivi ta démarche).
Conclusion :

PATH="~/bin/scripts:$PATH"

Dernière modification par miniSeb (Le 10/06/2013, à 12:57)

Hors ligne

#10 Le 10/06/2013, à 12:43

tiramiseb

Re : Question de script sh

Il y a aussi un dollar de trop, je viens de voir que l'erreur est également dans le message de nesthib.

Ce qui fait mettre, c'est :

PATH="~/bin/scripts:$PATH"

Dernière modification par tiramiseb (Le 10/06/2013, à 12:43)

Hors ligne

#11 Le 10/06/2013, à 12:58

miniSeb

Re : Question de script sh

Édité wink J'avais copié de netshib sans vérifier

Hors ligne

#12 Le 10/06/2013, à 13:02

tiramiseb

Re : Question de script sh

miniSeb a écrit :

Édité wink J'avais copié de netshib sans vérifier

Comme ça ceux qui liront cette discussion plus tard ne comprendront pas de quoi je parle big_smile

Hors ligne

#13 Le 10/06/2013, à 13:03

tiramiseb

Re : Question de script sh

infotoni: note également que le système est sensible à la casse.

Si ton fichier s'appelle premierscriptshell0, alors ça ne marchera jamais avec PREMIERSCRIPTSHELL0.

Hors ligne

#14 Le 10/06/2013, à 13:07

infotoni

Re : Question de script sh

Salut,

Cela ne marche toujours pas voici la nouvelle capture du terminal.

tony@tony-GA-8SIMLNF:~$ PATH="~/bin/scripts:$PATH"
tony@tony-GA-8SIMLNF:~$ PREMIERSCRIPTSHELL0
PREMIERSCRIPTSHELL0 : commande introuvable
tony@tony-GA-8SIMLNF:~$ PATH="~/bin/bin:$PATH"
tony@tony-GA-8SIMLNF:~$ PREMIERSCRIPTSHELL0
PREMIERSCRIPTSHELL0 : commande introuvable
tony@tony-GA-8SIMLNF:~$ PATH="~/bin/scripts:$PATH"
tony@tony-GA-8SIMLNF:~$ premierscriptshell0.sh
premierscriptshell0.sh : commande introuvable
tony@tony-GA-8SIMLNF:~$

Voici le script sh que je voudrais tester.

#!/bin/bash
# Fichier premier.sh.
# Un premier script shell.

echo moi, $USER, je fais sur $HOSTNAME mon premier script shell,
echo -n "fais aujoud'hui, sur "
echo -n "le "
date
echo


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#15 Le 10/06/2013, à 13:12

tiramiseb

Re : Question de script sh

Il s'appelle comment ton fichier ? Il est dans quel répertoire ?

Tu indiques plein de répertoires différents et plein de noms de fichiers différents !
On ne va jamais s'en sortir si tu écris n'importe quoi !

Le répertoire, c'est quoi ?
- bin/bin ?
- bin/scripts?
- BIN/SCRIPTS ?
- bin/scripts/SCRIPTS ?
- BIN/SCRIPTS/SCRIPTS ?

Le fichier, c'est quoi ?
- premierscriptshell0 ?
- premierscriptshell0.sh ?
- PREMIRSCRIPTSHELL0 ?
- PREMIRSCRIPTSHELL0.SH ?

Hors ligne

#16 Le 10/06/2013, à 13:20

infotoni

Re : Question de script sh

Salut,

Excusez-moi je ne veux surtout pas vous tourmenter avec ce problème et encore une foi merci pour votre aide.

Le répertoire c'est bien    "bin/"
Le fichier c'est bien         "premierscriptshell0"

Cordialement, infotoni.


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#17 Le 10/06/2013, à 13:22

tiramiseb

Re : Question de script sh

Si le fichier est directement dans le répertoire "bin", alors tu n'as pas besoin de modifier le PATH.

Dans ce cas, exécuter simplement

premierscriptshell0

devrait suffire.

Tu peux taper premi<tabulation> pour voir si ça fait la complétion automatique sur ce nom.

Hors ligne

#18 Le 10/06/2013, à 13:22

tiramiseb

Re : Question de script sh

Que donne la commande suivante ?

ls -lh ~/bin

Hors ligne

#19 Le 10/06/2013, à 13:35

infotoni

Re : Question de script sh

Salut,

Voici la cpature du terminal toujour "Commande introuvable"

tony@tony-GA-8SIMLNF:~$ premierscriptshell0
premierscriptshell0 : commande introuvable
tony@tony-GA-8SIMLNF:~$ premierscriptshell0
premierscriptshell0 : commande introuvable
tony@tony-GA-8SIMLNF:~$ ls -lh ~/bin
total 12K
-rw-r--r-- 1 tony tony 192 juin  10 11:12 PremierScriptShell0.sh
-rw-r--r-- 1 tony tony  60 juin  10 10:38 PremierScriptShell1.sh
-rw-r--r-- 1 tony tony 167 juin  10 10:37 PremierScriptShell2.sh
tony@tony-GA-8SIMLNF:~$

Cordialement.


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#20 Le 10/06/2013, à 13:37

tiramiseb

Re : Question de script sh

Donc ton fichier ne s'appelle pas "premierscriptshell0", il s'appelle "PremierScriptShell0.sh", avec un "P" majuscule, deux "S" majuscules et un ".sh" à la fin !

Depuis le début, tu aurais dû essayer de faire :

tony@tony-GA-8SIMLNF:~$ PremierScriptShell0.sh

Dernière modification par tiramiseb (Le 10/06/2013, à 13:38)

Hors ligne

#21 Le 10/06/2013, à 13:48

infotoni

Re : Question de script sh

Salut,

Voici la capture du terminal.

tony@tony-GA-8SIMLNF:~$ PremierScriptShell0.sh
bash: /home/tony/bin/PremierScriptShell0.sh: Permission non accordée
tony@tony-GA-8SIMLNF:~$

Cordialemnt.


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#22 Le 10/06/2013, à 13:51

tiramiseb

Re : Question de script sh

Ah ben oui, je ne l'avais pas vu : en plus tu n'as pas rendu ton script exécutable.

Soit dans le gestionnaire de fichiers tu clic droit sur le fichier et tu actives la permission d'exécution, soit tu exécutes la commande suivante :

chmod a+x ~/bin/PremierScriptShell0.sh

C'est à faire également pour les deux autres fichiers du répertoire, auquel cas tu peux faire :

chmod a+x ~/bin/*.sh

PS : s'il-te-plaît, mets les retours de commandes entre balises "code", ça rendra tes messages moins pénibles à lire. Tu l'obtiendras en cliquant sur bt_pre.png.

Hors ligne

#23 Le 10/06/2013, à 14:10

infotoni

Re : Question de script sh

Salut,

Voici la capture du terminal.

tony@tony-GA-8SIMLNF:~$ chmod a+x ~/bin/PremierScriptShell0.sh
tony@tony-GA-8SIMLNF:~$ PremierScriptShell0.sh
bash: /home/tony/bin/PremierScriptShell0.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
tony@tony-GA-8SIMLNF:~$

Cordialement.


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne

#24 Le 10/06/2013, à 14:13

tiramiseb

Re : Question de script sh

Tu n'as pas lu cette ligne ???
PS : s'il-te-plaît, mets les retours de commandes entre balises "code", ça rendra tes messages moins pénibles à lire. Tu l'obtiendras en cliquant sur bt_pre.png.

Tu es un peu (très) brouillon, que ce soit dans ta méthode de travail ou dans ta façon d'utiliser ce forum.
Rien que pour ce manque d'effort de ta part, je n'ai pas envie de te répondre (la réponse à ton problème étant évidente).

S'il faut te forcer pour que tu utilises correctement les outils à ta disposition sur le forum, alors voilà :
Quand tu auras mis correctement ce retour de commandes entre balises "code", je te répondrai.
Et là tu utiliseras peut-être cette balise...

Hors ligne

#25 Le 10/06/2013, à 14:32

infotoni

Re : Question de script sh

Salut,

Je suis vraiement désolé et je m'excuse du fond du coeur mais j'ai totalement oublié comment on fait pour mettre le texte entre balises "code", je ne sais pas, je ne vous manque pas de respect, je vous demande simplement à savoir pourquoi les script sh ne fonctionnent pas chez moi comme a la normale.

Cordialement.


Modèle Toshiba Satellite L350-14Y Système d'exploitation Windows Vista Basique Service pack 2
et Ubuntu 12.04 en 32 bit Ram 2 Go Processeur Intel (R) Céléron (R) CPU 560 @ 2.13 GHz
____________________________________
A qui se lève matin Dieu aide et prête la main.

Hors ligne