J'ai la ligne ci-dessous dans le script shell Unix. Je veux exclure test.jar dans WEB-INF/lib ajouté au CLASSPATH. Comment puis-je le faire?À propos de Shell Script
for file in WEB-INF/lib/*jar ;
do
CLASSPATH=$CLASSPATH:$PWD/$file
done
J'ai la ligne ci-dessous dans le script shell Unix. Je veux exclure test.jar dans WEB-INF/lib ajouté au CLASSPATH. Comment puis-je le faire?À propos de Shell Script
for file in WEB-INF/lib/*jar ;
do
CLASSPATH=$CLASSPATH:$PWD/$file
done
for file in WEB-INF/lib/*jar;
do
if [ $file != "WEB-INF/lib/test.jar" ]; then
CLASSPATH=$CLASSPATH:$PWD/$file
fi
done
Je ne l'ai pas essayé.
placez un espace: '[$ file' – ghostdog74
et ajoutez' WEB-INF/lib/'à' test.jar'. J'ai essayé d'éditer mais le formatage de code disparaît. – mouviciel
Terminé. Merci :) – Paul
PWD=$(pwd)
for file in WEB-INF/lib/*jar ; do
[ "$file" != "test.jar" ] && {
CLASSPATH="${CLASSPATH}:${PWD}/${file}"
}
done
Le code entre les accolades ne sont saisies si file
n'est pas 'test.jar', tweak pour répondre à vos besoins.
Quelque chose comme
#!/bin/sh
...
PWD=`pwd`
for file in `ls $PWD/WEB-INF/lib | grep *.jar | grep -v test.jar`
CLASSPATH=$CLASSPATH:$file
end
ne fais pas ça. utiliser l'expansion shell. – ghostdog74
#!/usr/bin/bash
shopt -s extglob
for file in WEB-INF/lib/!(test).jar
do
CLASSPATH="$CLASSPATH:$PWD/$file"
done
shopt -s extglob
CLASSPATH=$CLASSPATH:$(ls !(test).jar|sed "[email protected]^@$PWD/@"|tr "\n" ":"|sed 's/:$//')
Ou
CLASSPATH=$CLASSPATH:$(ls !(genre).txt|awk '{$0="'$PWD'/"$0}1' ORS=":")
Arav, s'il vous plaît ne pas réutiliser le titre "En ce qui concerne Shell script" pour toutes vos questions. S'il vous plaît utiliser un titre indiquant le problème réel. Vous n'allez pas chez le médecin et dites "aïe!", N'est-ce pas? – Jens