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 06/12/2010, 21h06   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 146
Points : 13
Points : 13
Par défaut Vérifier si plusieurs arguments sont présents

Bonjour,
J'aimerais savoir comment faire pour tester si une variable est vide ou non.
Dans mon cas, je veux savoir si $2, $3 et $4 sont vide ou pas.
J'ai fait ceci :

Citation:
if [ "$2" != "" && "$3" != "" && "$4" != "" ] ; then
Mais voilà ce que ça me retourne :

Citation:
[: missing `]'
Une idée ?
merci !
ApocKalipsS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 21h12   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 060
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 060
Points : 4 116
Points : 4 116
Code :
if [ -n "$2" -a -n "$3" -a -n "$4" ]; then
&& est utilisé entre [[ ]]
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2010, 21h36   #3
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
On peut simplifier un peu je pense.

Code :
1
2
 
if [ -n "$4" ]; then
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2010, 22h12   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 060
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 060
Points : 4 116
Points : 4 116
+1
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 10h09   #5
Membre habitué
 
Avatar de nowahn
 
Homme
Inscription : août 2008
Messages : 77
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations forums :
Inscription : août 2008
Messages : 77
Points : 131
Points : 131
Bonjour,

Citation:
Envoyé par becket
On peut simplifier un peu je pense.
Code bash :
if [ -n "$4" ]; then
Je ne suis pas d’accord, on peut passer des arguments vides :
Code bash :
1
2
3
4
5
./Test.sh Premier Second # Deux arguments non vides
./Test.sh '' Second # Le premier argument est vide, le second ne l’est pas
# En supposant que la variable NonExistant ne soit pas définie :
./Test.sh "${NonExistant}" Second # Le premier argument est vide, le second
                                  # ne l’est pas
Le dernier cas peut arriver plus souvent qu’on ne le croit.
nowahn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 11h28   #6
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Le titre c'est : "Vérifier si plusieurs arguments sont présents", Le fait qu'il veulent vérifier la nullité d'un argument n'est que la démarche logique pour tester la présence ou non de l'argument.
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h29.


 
 
 
 
Partenaires

Hébergement Web