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 :

Comment savoir d'une manière simple si un binaire est présent ou pas dans la machine ?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut Comment savoir d'une manière simple si un binaire est présent ou pas dans la machine ?
    Re-bonjour,

    J'avais pensé à file bien sûr, mais pas de bol, son retour n'est pas top :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # file rsync
    rsync: cannot open 'rsync' (No such file or directory)
    # echo $?
    0
    Comment ça, 0 ?

    Il y aurait man
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # man rsync
    Aucune entrée de manuel pour rsync
    # echo $?
    16
    mais si c'est positif, comment en sortir ? Car oui, tout ça doit être automatisé...

    Il y aurait stat mais il y a un souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # stat rsync
    stat: impossible d''évaluer 'rsync': Aucun fichier ou dossier de ce type
    # echo $?
    1
    d'accord dessus puisque rsync n'est pas installé (machine neuve), mais ls !?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # stat ls
    stat: impossible d''évaluer 'ls': Aucun fichier ou dossier de ce type
    # echo $?
    1
    # ls -AlGg /bin/ls
    -rwxr-xr-x 1 138856 févr. 28  2019 /bin/ls
    Là je ne comprends pas...

    man -f pourrait être la solution sympa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # man -f ls
    ls (1)               - list directory contents
    # echo $?
    0
    # man -f rsync
    rsync : rien d''adéquat
    # echo $?
    16
    Une autre idée ?

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 256
    Par défaut
    stat ls
    stat: impossible d'évaluer ]'ls': Aucun fichier ou dossier de ce type

    fait :
    et ça marchera

    D'après ta description, en cas de non présence du fichier passé en paramètre, file ne semble pas retourner de code erreur même si l'erreur est affichée.

    Si tu veux t'assure de la présence de rsync pour l’exécution de ton script, ajoutes-y :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apt-get update && apt-get install rsync -y
    Rien ne t’empêche d'affiner en recherchant la présence de l'exe dans /usr/bin/ (le dossier ou il doit se trouver) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /usr/bin -name "rsync"
    ou stocké dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable=$(find /usr/bin -name "rsync"|wc -l)
    wc -l retournant le nombre de lignes générées par ce qui lui est donnée en entrée, dans le vas présent variable=0 signifiera la non présence du fichier variable=1 sa présence.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

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

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

    Comment ça, 0 ?
    Apparemment, la commande stat, dont dépend file, est tout content d'avoir travaillé à ta question et renvoie 0.

    file rsync
    Ne confonds pas les fichiers et les logiciels. Tu cherches un logiciel, pas un fichier. N'est-ce pas ?

    mais si c'est positif, comment en sortir ? Car oui, tout ça doit être automatisé...
    Ou plutôt ceci pour le moment :
    Il y aurait stat mais il y a un souci :
    Non, mais stat, file, même combat. Tu demandes de regarder un fichier du dossier courant... qui n'existe probablement pas.

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # whereis rsync
    rsync:
    # echo $?
    0
    # whereis ls
    ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
    # echo $?
    0
     
    # which rsync
    # echo $?
    1
     which ls
    /usr/bin/ls
    # echo $?
    0
    et le vainqueur serait donc which.

    Merci à tous.

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

Discussions similaires

  1. [URL] Comment savoir si une URL existe?
    Par jse dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 07/10/2004, 15h33
  2. [JScrollPane]Comment savoir quand une scrollbar apparait ?
    Par FrigoAcide dans le forum Composants
    Réponses: 4
    Dernier message: 29/04/2004, 10h10
  3. Comment savoir si une impression s'est bien déroulé?
    Par Cyrilh7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/11/2003, 20h49
  4. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42
  5. Réponses: 4
    Dernier message: 10/09/2002, 17h09

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