Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2011, 21h48   #1
Futur Membre du Club
 
Homme Nicolas
Chef de projet, concepteur
Inscription : mai 2003
Messages : 44
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Chef de projet, concepteur

Informations forums :
Inscription : mai 2003
Messages : 44
Points : 16
Points : 16
Par défaut [shell] Interprétation d'une variable issue d'un fichier

Bonjour,

Je bloque sur un problème de shell.

Je constitue le classpath d'un programme java à l'aide du contenu d'un fichier (généré par un plugin maven).

Ensuite, dans un sh permettant le lancement de ce programme, je récupère le contenu de ce fichier dans une variable avant d'appeler la commande java :

Code :
1
2
3
 
  export _CLASSPATH_LIB=$(<lib/classpath_lib_linux.txt)
  java -classpath $_CLASSPATH_LIB:autrejar.jar maClasse
Le contenu de ce fichier ressemble à ça :

Code :
$BATCH_HOME/lib/monjar1.jar:$BATCH_HOME/lib/monjar2.jar: ....
La variable $BATCH_HOME est définit dans le .profile de l'utilisateur exécutant le shell.
Or cette variable ne semble pas être interprété lorsque le contenu du classpath provient d'un fichier.

En effet, le code ci-dessous, quand à lui, fonctionne correctement :

Code :
1
2
3
 
  export _CLASSPATH_LIB=$BATCH_HOME/lib/monjar1.jar:$BATCH_HOME/lib/monjar2.jar:...
  java -classpath $_CLASSPATH_LIB:autrejar.jar maClasse
Est ce que quelqu'un a une idée expliquant le fait que le variable $BATCH_HOME ne semble pas être reconnue en tant que tel lorsque le classpath provient d'un fichier ?

Merci.
seawolfm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 22h55   #2
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 6 027
Points : 6 027
Bonjour.

Vous êtes sous quel OS ? Si c'est une distribution GNU/Linux, vous devez faire l'export de $BATCH_HOME dans votre ~/.bashrc je pense :

Code :
echo "export BATCH_HOME=..." >> ~/.bashrc
Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 23h10   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
Bonjour,

le contenu d'un fichier quand on le lit n'est pas développé; il faut utiliser eval
Code :
eval export _CLASSPATH_LIB=$(<lib/classpath_lib_linux.txt)
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/03/2011, 23h27   #4
Futur Membre du Club
 
Homme Nicolas
Chef de projet, concepteur
Inscription : mai 2003
Messages : 44
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Chef de projet, concepteur

Informations forums :
Inscription : mai 2003
Messages : 44
Points : 16
Points : 16
Merci beaucoup ! Ca fonctionne en faisant comme cela.

J'avais essayé avec un eval ; mais je ne l'avais mis après le '='
seawolfm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h22.


 
 
 
 
Partenaires

Hébergement Web