mercredi 30 juin 2010

bash : script de test existence fichier

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