IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Comparaison : -z ?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut Comparaison : -z ?
    Bonjour,

    Je ne comprends pas cette manière de comparer avec -z ? On compare avec rien ?????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    verification=$(screen -ls | grep 'Name');
    if [ -z "$verification" ]
    then .......
    Merci d'avance pour votre aide éventuelle

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 686
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 686
    Par défaut
    Citation Envoyé par help test | grep -- -z
    -z CHAÎNE Vrai si la CHAÎNE est vide.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Bonjour

    Encore une fois : Les crochets sont un raccourci pour la commande test.
    Ta condition est équivalente à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if test -z "$verification"
    Nulle comparaison dans ceci.

    D'ailleurs, si tu veux mon avis, il faut résumer tout ce bazar (tes 3 lignes de code) par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if screen -ls | grep -q 'Name'
    then

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if screen -ls | grep -q 'Name'
    then
    Donc si c'est vrai càd si Name est trouvé, alors....

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Oui. Avec la plus-value que, si ton fichier fait 1Go, grep sortira à la première occurrence de 'Name', alors que tout le fichier sera parcouru pour écrire les lignes dans ta variable $verification, avec le procédé du premier message. Gain de temps, d'efficience, et de clarté.

  6. #6
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    -q, --quiet, --silent
    Quiet; do not write anything to standard output. Exit
    immediately with zero status if any match is found, even if an
    error was detected. Also see the -s or --no-messages option.
    S'il ne trouve pas l'occurence 'Name', le exit que provoque le -q empêchera-t-il d'aller dans le "else" pour sortir ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # VERIFICATION
    if screen -ls | grep -q 'Name'
    then
            echo "je relance...";
    else
    	echo "il y a une erreur";
    fi

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 138
    Par défaut
    Si tu avais été chercher dans la documentation de ton shell (man sh|bash|ksh...), tu aurais lu que -z est un opérateur unaire (à un seul opérande) qui retourne vrai si la longueur de la chaîne testée est égale à 0 (chaîne vide).
    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
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comparaison de 2 dates
    Par eisti dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2003, 12h33
  2. [langage] Comparaison de fichiers
    Par Jibees dans le forum Langage
    Réponses: 3
    Dernier message: 23/04/2003, 17h27
  3. Comparaison de fichier
    Par danzerg dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2003, 12h49
  4. Comparaison JBuilder avec Sun ONE Studio
    Par chichos dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 13/11/2002, 16h08
  5. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo