Voici un super cours de shell ... Voici un super cours de shell ...
Explications :
1) Toute l'astuce consiste a faire un "echo" de ma variable CLASSPATH, et a remplacer en live les séparateurs ':' par des ' ' afin de pouvoir être utiliser dans un for ...
Via la commande :
librairies=`echo $CLASSPATH | sed "s/:/ /g"`
2) puis on itere via un for :
librairies=`echo $CLASSPATH | sed "s/:/ /g"`
for librairie in ${librairies}
3) on test la non existence du fichier via :
if [ ! -e "${librairie}" ]
4) on definit 2 procédures :
- controleClasspath()
- lancerScript()
La première met à true la variable classpathOk si tous les jars sont présents et appelle la procédure lancerScript , sinon à false.
if [ "${classpathOk}" == "true" ]
then
lancerScript
fi
#!/bin/bash
# Definit l'emplacement des jars
# export LIB_HOME=${domaine.basedir}/../../.wlnotdelete/extract/bocorchestre_bocorchestreEAR_bocorchestre/jarfiles/WEB-INF/lib/
export LIB_HOME=/cygdrive/d/bea/user_projects/domains/bocV8lot1/myserver/.wlnotdelete/extract/myserver_web_web/jarfiles/WEB-INF/lib
# Ajoute le répertoire au Path
export PATH=$PATH:$BATCH_HOME
# Defini le classpath
export CLASSPATH=$CLASSPATH:$BATCH_HOME/batch.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/framework.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/framework.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/communs.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/domaine.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/services.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/log4j-1.2.11.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/datedFileAppender-1.0.2.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/poi-2.5.1.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/bocvaloservicesejb.jar
export CLASSPATH=$CLASSPATH:$LIB_HOME/concurrent-1.3.4.jar
classpathOk=true
controleClasspath()
{
librairies=`echo $CLASSPATH | sed "s/:/ /g"`
for librairie in ${librairies}
do
if [ ! -e "${librairie}" ]
then
echo "le jar suivant \"${librairie}\" est inexistant"
classpathOk=false
fi
done
}
lancerScript()
{
echo "cool"
}
echo "controle du classpath"
echo "${classpathOk}"
controleClasspath
echo "${classpathOk}"
if [ "${classpathOk}" == "true" ]
then
lancerScript
fi
Aucun commentaire:
Enregistrer un commentaire