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 :

Tester l'existence & lexecutabilite proprem


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut Tester l'existence & lexecutabilite proprem
    Bonjour
    soit un script shell en TCSH récupérant un argument passé.
    Cett argument correspond a une commande.


    Comment tester si la commande passé en paramètre est :
    1- VALIDE
    2- EXECUTABLE



    Pour la question 1, jai bien essayé de l executer mais si :
    -elle nexiste pas, elle provoque un message d'erreur , ce nest pas tres propre
    -si elle existe, la commande sera lancé, pas tres propre aussi

    Pour la question 2 (SON EXECUTABILITE) dois je simplement tester les droits en execution? (-x $1) Mais comment faire si la commande lancé est un programme du NOYAU (ls more... sudo ou autre). ya til une distingtion a faire selon que ce soit un programme du répertoire courant ou existant dans le PATH?


    Question 3:addendum(désolais!):
    J'ai essayé ceci pour savoir si un programme accessible, ou executable avec la commande access
    si je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (`àccess x ls`) echo "cest accessible & execitable"
    Or cela naffiche rien
    cela naffiche le message que si jessaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!`access x ls`) echo "cest accessible"
    Pourquoi je ne fais pas ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ if (`-x ls`)echo "executable et accessiblle"
    Car si LS (ou tout autre programme passe en parametre) nexistait pas jaurai un message derreur ce que je ne veux pas: je veux un script propre.


    Merci davance a tous.

    Seb

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Bonjour !!

    Ma réponse fonctionne avec Bash, il faut vérifier si ça passe avec TCSH.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if [ -x $1 ]
    then
          echo "la commande $1 est executable"
    fi
    Cela vérifie que le 1e paramètre est exécutable et donc valide pour l'utilisateur qui à lance le script (en fct e son PATH).
    Il faut faire attention à bien mettre un espace avant ET après les [ ].


    Espérant que ça fonction sur ton shell.

Discussions similaires

  1. [JDBC]Tester l'existence d une table
    Par juflata dans le forum JDBC
    Réponses: 7
    Dernier message: 29/06/2004, 15h27
  2. tester l'existance d'un enregistrement
    Par LoLoSS dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/05/2004, 14h58
  3. tester l existence d un fichier sous turbo pascal
    Par Newllite dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 25/01/2004, 12h47
  4. Peut on tester l'existence d'un fichier ?
    Par Alamassepointcom dans le forum Flash
    Réponses: 2
    Dernier message: 10/10/2002, 12h10
  5. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55

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