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

Linux Discussion :

Installé ou pas ?


Sujet :

Linux

  1. #1
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut Installé ou pas ?
    Hello !

    Afin de lancer un script j'ai besoin de savoir si "screen" est installé sur le serveur.

    Je pensais procéder comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #! /bin/bash
    if screen -v; then
            echo "Screen OK"
    else
            echo "screen NOK"
    fi
    Mais ça ne prends pas en compte le test et affiche
    Screen version 4.00.03 (FAU) 23-Oct-06
    screen NOK
    Pas du tout ce que je souhaite.

    Quelqu'un pourrais m'aider car je suis larguer sous unix.

    Merci

  2. #2
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    personne ne sait ?

  3. #3
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Je pensais également à ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #! /bin/bash
    screen -v >/dev/null
    if [ $? != 0 ]; then
            echo "Screen OK"
    else
            echo "Screen NOK"
    fi
    Mais ce n'est pas mieux

  4. #4
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Tu peux utiliser which (ou type) pour savoir si screen est dans le path.

  5. #5
    Membre éclairé Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Points : 790
    Points
    790
    Par défaut
    Tu es sûr que ce n'est pas l'inverse qu'il faut tester (ie $? = 0 => OK) ?

  6. #6
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Je viens de tester, screen -v renvoie 1. Et si screen n'existe pas, le code est 127.

    Par ailleurs, il faut utiliser "-ne" pour tester l'inégalité entre des nombres.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Points : 329
    Points
    329
    Par défaut
    which screen &>/dev/null && echo "OK" || echo "NOK"

  8. #8
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Citation Envoyé par llaffont Voir le message
    Je pensais également à ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #! /bin/bash
    screen -v >/dev/null
    if [ $? != 0 ]; then
            echo "Screen OK"
    else
            echo "Screen NOK"
    fi
    Mais ce n'est pas mieux
    Quelques remarques :
    • Ce n'est pas comme ça que l'on fait des comparaisons de valeur.
    • La redirection de la sortie standard vers /dev/null est bine pensée, mais si screen n'est pas présent, tu vas avoir un affichage sur la sorite d'erreur. Il faut donc également rediriger celle-ci vers /dev/null.


    Voici un script qui fait ce que tu veux. Poses des questions si tu ne comprends pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #! /bin/bash
     
    ## Tests if 'screen' is available with default user PATH or not
     
    screen -v > /dev/null 2>&1
    if [ $? -ne 0 ]; then
            echo "Screen OK"
    else
            echo "Screen NOK"
    fi

  9. #9
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Citation Envoyé par tamiel Voir le message
    which screen &>/dev/null && echo "OK" || echo "NOK"
    Cela ne fonctionne pas : which retourne 0 dans tous les cas, que la commande soit trouvée ou non :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    fschuler@lyngvi> which screen
    no screen in /bin /usr/sbin /usr/local/bin /usr/j2se/bin .
    fschuler@lyngvi> echo $?
    0
    fschuler@lyngvi> which ls
    /usr/bin/ls
    fschuler@lyngvi> echo $?
    0

  10. #10
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    merci gangsoleil !

    J'ai testé ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    screen -v > /dev/null 2>&1
    if [ $? -ne 0 ]; then
            echo "Screen OK"
    else
            echo "Screen NOK"
    fi
    Il m'a servi a trouvé la bonne réponse. Le bon code était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
     
    screen -v > /dev/null 2>&1
    if [ $? -ne 127 ]; then
            echo "Screen OK"
    else
            echo "Screen NOK"
    fi
    Donc merci a toi et à LLB qui donnais la valeur du code erreur

    PS : Petite question comment as t'il trouvé le code erreur ?

  11. #11
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    C'est par convention, les Shells utilisent en principe le code de retour 127 en cas de commande inconnue.

    En l'occurrence, c'est très simple de tester en mode interactif ; d'ailleurs, c'est ce qu'indique gangsoleil. Un simple « echo $? » après le test affiche la valeur de retour.

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

Discussions similaires

  1. Composants (ex:Jmail, Cdonts) installés mais pas reconnus
    Par icimimi dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 01/09/2007, 15h04
  2. [Win XP 64] A votre avis : a installer ou pas ?
    Par Gromitou dans le forum Windows XP
    Réponses: 1
    Dernier message: 10/04/2006, 14h50
  3. [Installation] Prodédure pas-à-pas
    Par Fabien Celaia dans le forum DB2
    Réponses: 0
    Dernier message: 21/12/2005, 08h49
  4. disque dur installé mais pas d'icône sur le bureau
    Par stephan1 dans le forum Composants
    Réponses: 2
    Dernier message: 14/12/2005, 10h17

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