Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1384 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  script qui appelle un autre script ?????

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script qui appelle un autre script ?????

n°996693
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 15:47:59  profilanswer
 

Hello,
 
Bonne Année :-)
 
Je suis débutant en bash.
 
Voila j'ai un fichier "test" qui contien ces lignes :
#!/bin/bash
rm -r "/Volumes/folder_a/folder_b"  
cp -Rv "/Volumes/folder_a/folder_b/appli"  "/Volumes/autrepartition/appli"
 
ce fichier est dans : Volumes/Dexys/Datas/Programmation/Scripts/TestBash/bin
 
Dans : Volumes/Dexys/Datas/Programmation/Scripts/TestBash/ , j'ai un fichier "yo" qui doit éxécuter le fichier test
 
si j'écris dans "yo":
#!/bin/bash
"Volumes/Dexys/Datas/Programmation/Scripts/TestBash/bin/test"
 
le fichier s'éxécute.
 
Comment faire pour ne pas utiliser le chemin absolu.  :pfff:  
 
du style ./test pour exécuter le fichier, j'ai tout essayé rrrrrrr
 
 
Merci pour votre aide
 
 
Dexys
 
 
 
 
 


---------------
Dexys
mood
Publicité
Posté le 01-01-2008 à 15:47:59  profilanswer
 

n°996694
e_esprit
Posté le 01-01-2008 à 15:53:51  profilanswer
 

./test signifie que tu exécutes un fichier dans . (c'est à dire le repertoire courant), ce qui n'est pas le cas à priori, à moins que tu ne forces le changement de repertoire via un cd /ton/rep/ou/y/a/test/ dans ton script, mais ce n'est pas terrible.
 
Ce que tu souhaites faire, en fait, c'est redéfinir ton PATH (variable d'environnement qui indique les chemins où les executables vont être cherchés), afin d'y rajouter le repertoire ou se trouve tes scripts.
export PATH=$PATH:/Volumes/Dexys/Datas/Programmation/Scripts/TestBash/bin
 
ensuite tu pourras appeler test en tapant simplement "test".
 
Mais je te déconseille de l'appeller ainsi (test), puisqu'un programme portant ce nom existe deja, donc tu risques d'avoir un conflit de nom ;)

Message cité 1 fois
Message édité par e_esprit le 01-01-2008 à 15:54:21

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°996696
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 16:01:09  profilanswer
 

e_esprit a écrit :

./test signifie que tu exécutes un fichier dans . (c'est à dire le repertoire courant), ce qui n'est pas le cas à priori, à moins que tu ne forces le changement de repertoire via un cd /ton/rep/ou/y/a/test/ dans ton script, mais ce n'est pas terrible.
 
Ce que tu souhaites faire, en fait, c'est redéfinir ton PATH (variable d'environnement qui indique les chemins où les executables vont être cherchés), afin d'y rajouter le repertoire ou se trouve tes scripts.
export PATH=$PATH:/Volumes/Dexys/Datas/Programmation/Scripts/TestBash/bin
 
ensuite tu pourras appeler test en tapant simplement "test".
 
Mais je te déconseille de l'appeller ainsi (test), puisqu'un programme portant ce nom existe deja, donc tu risques d'avoir un conflit de nom ;)


Salut,
 
merci pour ta réponse.
en fait ce que je souhaite c'est faire l'équivalent de la commande DOS :  
 
Call


---------------
Dexys
n°996702
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 16:20:21  profilanswer
 

Je n'y arrive pas   :cry:  
 
Bin contient mes différents scripts
 
Yo est le fichier qui appelle ces scripts, yo et bin sont dans le même répertoire
 
voilà ce que j'ai écris dans yo :
 
#!/bin/bash  
cd "/Volumes/Dexys/Datas/Programmation/Scripts de Copie/Test Bash/bin"
toto
 
et j'ai un commande not found grrrrrrrrr


---------------
Dexys
n°996703
Ik12
Posté le 01-01-2008 à 16:22:32  profilanswer
 

./toto


---------------
on est au 21 siècle plus person ne écrit correctement sur les forum ni sur msn ni sur les SMS.
n°996704
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 16:23:01  profilanswer
 

Bon ok j'ai fait une connerie
 
#!/bin/bash  
cd "/Volumes/Dexys Datas/Programmation/Scripts de Copie/Test Bash/bin"  
./toto
 
là c'est mieux. Mais j'ai pas compris ton export PATH=$PATH


---------------
Dexys
n°996706
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 16:24:41  profilanswer
 


Merci Ik12, j'avais corrigé  :pt1cable:
le ./toto

 

et en plus j'aais mis un slash dans mon chemin en trop :-( Désolé

 

Mais y a pas un moyen de ne pas se taper un CD, un truc plus direct?

 


Message édité par dexys le 01-01-2008 à 16:25:07

---------------
Dexys
n°996707
Ik12
Posté le 01-01-2008 à 16:26:49  profilanswer
 

C'est sans doute a cause des espaces dans les noms. Essais de mettre des etoiles (*) a la place des espaces.

Message cité 1 fois
Message édité par Ik12 le 01-01-2008 à 16:27:23

---------------
on est au 21 siècle plus person ne écrit correctement sur les forum ni sur msn ni sur les SMS.
n°996708
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 16:28:59  profilanswer
 

Ik12 a écrit :

C'est sans doute a cause des espaces dans les noms. Essais de mettre des etoiles (*) a la place des espaces.


 
#!/bin/bash    
cd "/Volumes/Dexys Datas/Programmation/Scripts de Copie/Test Bash/bin"  
./toto  
 
Comme cela cela fonctionne. Mais je voudrais savoir si y a pas un moyen d'éviter de faire un CD ?


---------------
Dexys
n°996709
Ik12
Posté le 01-01-2008 à 16:33:01  profilanswer
 

Le export PATH=$PATH, si j'ai bien compris, c'est que tu "exporte" le contenu de /Volumes/Dexys Datas/Programmation/Scripts de Copie/Test Bash/bin dans le repertoir courant. Ainsi, ton script pourras executer ce qui est dans /Volume/*/bin tout en etant dans le repertoire courant. Comme ca, t'aurais pas a faire de cd.


---------------
on est au 21 siècle plus person ne écrit correctement sur les forum ni sur msn ni sur les SMS.
mood
Publicité
Posté le 01-01-2008 à 16:33:01  profilanswer
 

n°996717
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 16:45:19  profilanswer
 

Ik12 a écrit :

Le export PATH=$PATH, si j'ai bien compris, c'est que tu "exporte" le contenu de /Volumes/Dexys Datas/Programmation/Scripts de Copie/Test Bash/bin dans le repertoir courant. Ainsi, ton script pourras executer ce qui est dans /Volume/*/bin tout en etant dans le repertoire courant. Comme ca, t'aurais pas a faire de cd.


 
Je dois être complètement niais  :jap:  
 
Comment tu écris cette syntaxe ?
 
toujours en partant du script yo
:
#!/bin/bash  
cd "/Volumes/Dexys Datas/Programmation/Scripts de Copie/Test Bash/bin"
./toto
 
Ce que je comprends pas je peux pas utiliser du relatif plutôt que de l'absolu. Dans Test Bash, j'ai mon répertoire Bin et mon fichier yo, je peux pas lui dire va dans mon rep Bin et éxécute mon fichier toto, sans lui passer un cd de mon chemin complet ?
 
Merci à toi en tout cas


---------------
Dexys
n°996719
e_esprit
Posté le 01-01-2008 à 16:49:19  profilanswer
 

Ben le problème, c'est que quand tu executes yo, le chemin courant est le repertoire depuis lequel tu l'as appelé, et non pas le repertoire dans lequel il se trouve (je sais pas si la nuance est très claire).


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°996720
Ik12
Posté le 01-01-2008 à 16:50:56  profilanswer
 

J'ai jamais fais de programmation moi :D Je sais pas trop comment ca marche. Mais ca me parait convaicant:

Code :
  1. export PATH=$PATH:/Volumes/Dexys/Datas/Programmation/Scripts/TestBash/bin
 

Edit: bah en fait, c'est ce que e_esprit a dit...

Message cité 1 fois
Message édité par Ik12 le 01-01-2008 à 16:51:50

---------------
on est au 21 siècle plus person ne écrit correctement sur les forum ni sur msn ni sur les SMS.
n°996726
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 17:09:21  profilanswer
 

Ik12 a écrit :

J'ai jamais fais de programmation moi :D Je sais pas trop comment ca marche. Mais ca me parait convaicant:

Code :
  1. export PATH=$PATH:/Volumes/Dexys/Datas/Programmation/Scripts/TestBash/bin


 
Edit: bah en fait, c'est ce que e_esprit a dit...


 :??:  
 
Je pige pas l'intérêt de PATH=$PATH:"/Volumes/Dexys Datas/Programmation/Scripts de Copie/Test Bash/bin" ??
Je la mets où ctte syntaxe, j'ai essayé mais cela ne fonctionne pas........ :( e_esprit es tu là.?  :lol:  
 
 
Merci
 
Dexys


Message édité par dexys le 01-01-2008 à 17:09:41

---------------
Dexys
n°996728
e_esprit
Posté le 01-01-2008 à 17:12:19  profilanswer
 

Tu le tapes dans un shell, ou bien tu le mets dans ton ficher de démarrage de ton shell (~/.bashrc si c'est bash par exemple).


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°996730
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 17:24:26  profilanswer
 

e_esprit a écrit :

Tu le tapes dans un shell, ou bien tu le mets dans ton ficher de démarrage de ton shell (~/.bashrc si c'est bash par exemple).


 
Ok merci à toi et à Ik12.
 
Mais cela ne répond pas à mon besoin. J'ai plusieurs répertoires, comme cela, et sur plusieurs machines qui n'ont pas le même path. Je voulais simplifier en utilisant du relatif, car l'arborescence /Programmation/Scripts de Copie/Test Bash/bin ne change jamais d'une machine à une autre et d'un répertoire à un autre, mais pas de l'absolu. C'est pas grave je vais me taper du CD, yo
 
Dexys


Message édité par dexys le 01-01-2008 à 17:26:19

---------------
Dexys
n°996737
o'gure
Modérateur
Multi grognon de B_L
Posté le 01-01-2008 à 18:00:50  profilanswer
 

Au pire tu modifies ta variables PATH au début de ton script pour y intégrer l'ensemble des répertoires succeptible de contenir des programmes que tu souhaites exécuter.
 
[:spamafote]


---------------
Relax. Take a deep breath !
n°996740
dexys
"Chi va piano, va sano".
Posté le 01-01-2008 à 18:04:07  profilanswer
 

o'gure a écrit :

Au pire tu modifies ta variables PATH au début de ton script pour y intégrer l'ensemble des répertoires succeptible de contenir des programmes que tu souhaites exécuter.
 
[:spamafote]


Oui au pire je peux faire cela.
 
Merci à tous et Bonne Année. :bounce:


Message édité par dexys le 01-01-2008 à 18:06:36

---------------
Dexys

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  script qui appelle un autre script ?????

 

Sujets relatifs
Script d'arrêt sous LinuxScript QoS qui marche partiellement
Script Bash : appeler un script avec une chaîne en optionScript Shell condition répertoire vide
script shell qui recherche un motProblème de script bash sous Cygwin
Script Connexion SambaScript shell pour découper des fichiers audio
Envoyer "entree" a un script appelle depuis un autre script...[shell] script appellé par un pipe, stocker la donnée d'entrée?
Plus de sujets relatifs à : script qui appelle un autre script ?????


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR