Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
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/06/2008, 09h54   #1
Membre Expert
 
Inscription : mai 2004
Messages : 1 253
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 1 253
Points : 1 290
Points : 1 290
Par défaut Conditions multiples avec Korn Shell

Bonjour,

je cherche à tester si deux types de fichiers sont présents dans un même répertoire. Il en faut au moins un pour que cela réussisse. Malheureusement je n'arrive pas à trouver la bonne syntaxe pour cela, même avec le tutoriel sur developpez.com

J'utilise un Korn Shell.

Code :
1
2
3
4
if [[ -f $HOME/install/applications/*.war || -f $HOME/install/applications/*.ear ]]
then
  echo "Ok"
fi
Si quelqu'un a une idée pour m'aider, je l'en remercie d'avance
dingoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 10h31   #2
Membre habitué
 
Inscription : novembre 2007
Messages : 130
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 130
Points : 134
Points : 134
je ne peu pas le tester en ce moment mais il me semble bien que c'est plutot ca la syntax :

Code :
1
2
 
if [[ -f $HOME/install/applications/*.war ] || [-f $HOME/install/applications/*.ear ]]
azalsup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 10h38   #3
Membre Expert
 
Inscription : mai 2004
Messages : 1 253
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 1 253
Points : 1 290
Points : 1 290
Merci ! Mais ce n'est pas correct : j'obtiens une erreur de syntaxe.

Je sais, c'est réellement la syntaxe qui me fait défaut : avec une seule condition, je n'ai pas de souci, mais avec plusieurs, cela en pose...
dingoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 12h32   #4
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 455
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 455
Points : 7 580
Points : 7 580
Simple [] ou Double [ ], il faut choisir... mas pas mélanger
ksh encourage l'usage du double
Code :
if [[ -f $HOME/install/applications/*.war ]] || [[-f $HOME/install/applications/*.ear ]]
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 13h04   #5
Membre Expert
 
Inscription : mai 2004
Messages : 1 253
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 1 253
Points : 1 290
Points : 1 290
J'utilise un ksh, j'en suis certain et pourtant ta solution ne marche pas.

En n'utilisant qu'un crochet à chaque fois, cela fonctionne :
Code :
1
2
3
4
if [ -f $HOME/install/applications/*.war ] || [ -f $HOME/install/applications/*.ear ]
then
  echo "Ok"
fi
Mon erreur principale était l'inclusion du "ou" dans les crochets et non pas hors des crochets, comme dans d'autres langages comme Java, C, etc.

Edit : il semblerait que ce soit un Posix-shell, finalement... Pas moyen d'être sûr à 100% :-/
dingoth 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 02h17.


 
 
 
 
Partenaires

Hébergement Web