[KSH] Scripts en série & pb de path

Scripts en série & pb de path [KSH] - Shell/Batch - Programmation

Marsh Posté le 28-09-2011 à 20:20:21    

Bonsoir,

 

J'ai un petit soucis sur un dev que je suis en train de faire.
Je vais d'abord commencer par un petit résumé :

 

Nous avons l'arborescence suivante :
 /apps/dtc
          --> petitun.sh
          --> batch/
                  --> petitdeux.sh
                  --> jarkivabien.jar
                  --> lib/
                          --> librairies utilisées par le jar

 

petitun.sh va faire diverses choses et appeler petitdeux.sh
ca, pas de problèmes.

 

petitdeux.sh va faire diverses choses dont appeler jarkivabien.jar
Ca, pas de soucis non plus.

 

jarkivabien.jar va faire diverses choses et les fait bien.
Pas de soucis non plus ici.

 

Le problème, c'est lorsque je veux lancer petitun.sh qui va lancer petitdeux.sh qui va lancer jarkivabien.jar

 

J'ai le droit à un beau :

Code :
  1. Unable to access jarfile createUsersRBE.jar
 

Là, mes lointaines connaissances me disent : le shell est fourbe, vu que tu lances d'un répertoire à un autre, il doit pas se situer au bon endroit lorsque tu veux lancer le jar. OK.

 

Je modifie donc mon petitdeux.sh de la façon suivante :

Code :
  1. JAVA_HOME=/usr/java6/jre/bin
  2. DIR_LAUNCH=/apps/dtc/dtc/batch
  3. export JAVA_HOME
  4. export DIR_LAUNCH
  5. PATH=$PATH:$DIR_LAUNCH:$JAVA_HOME
  6. export PATH
  7.  
  8. java -jar jarkivabien.jar $CMS $BOUSER $BOPASS $TDUSER $TDPASS $TDSERV $TDDB
 

là, java est bien trouvé.
Mais pas mon jarkivabien.jar.

 

Les seuls moyens que j'ai de le lancer sont de faire un petit

Code :
  1. cd /apps/dtc/bath


avant de lancer l'exécution du jar, ou de lui indiquer le chemin complet :

Code :
  1. java -jar /apps/dtc/batch/jarkivabien.jar $CMS $BOUSER $BOPASS $TDUSER $TDPASS $TDSERV $TDDB
 

Pourquoi cela ne fonctionne-t-il pas avec l'export du PATH ?
Aurais-je raté un truc sur la visibilité des variables d'environnement ?

 

Si quelqu'un à une idée, je suis preneur :)

 

Merci,

 

Gocho


Message édité par gocho le 28-09-2011 à 20:22:47
Reply

Marsh Posté le 28-09-2011 à 20:20:21   

Reply

Marsh Posté le 29-09-2011 à 08:26:31    

La variable PATH ne sert qu'au shell, pour trouver les fichiers avec les droits d'exécution qu'on lui demande de lancer.
Il est donc normal que java ne trouve pas le .jar avec uniquement la variable PATH de renseignée, puisque java ne la regarde pas.


Message édité par Elmoricq le 29-09-2011 à 08:27:03
Reply

Marsh Posté le 29-09-2011 à 08:48:01    

Une idée sur comment je pourrais le faire ?
N'ai je que l'option de faire un 'cd' ou de renseigner le chemin en dur ?

 

Message cité 1 fois
Message édité par gocho le 29-09-2011 à 08:51:51

---------------
Mon feedback
Reply

Marsh Posté le 29-09-2011 à 09:28:12    

Bon...en fait, j'ai fait simple, je suis passé par un cd.
Y'avait un autre soucis sans cela, l'un de mes fichiers de logs n'allait pas au bon endroit...
avec le cd, tout est ok :)
 
Petite question subsidiaire :  

Code :
  1. flag=$(find /apps/dtc/batch/ -type f -name "Petitun.sh" | wc -l)


 
La commande suivante me retourne le nombre d'occurences trouvées.
J'ai une variable qui représente /apps/dtc/batch ($batch)
 
sauf que  

Code :
  1. flag=$(find $batch -type f -name "Petitun.sh" | wc -l)


ne fonctionne pas....
 
Comment puis je faire pour utiliser mes variables ?


---------------
Mon feedback
Reply

Marsh Posté le 29-09-2011 à 12:14:58    

gocho a écrit :

Une idée sur comment je pourrais le faire ?  
N'ai je que l'option de faire un 'cd' ou de renseigner le chemin en dur ?  
 

http://forum.hardware.fr/hfr/Progr [...] 1088_1.htm
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed