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 :

tester l'existence d'une sous chaine + test de valeur numérique


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut tester l'existence d'une sous chaine + test de valeur numérique
    Bonjour,

    Je voulais vérifier l'existence d'une sous chaine dans une autre sans passer par sed (juste avec un shell) et en utilisant les pipe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    condition= $(echo $chaine | grep "$sous_chemin" | wc -l)
    if test $condition -eq 0
    then 
    echo "existe"
    else
    echo "n existe pas"
    fi
    j'ai tout essayé et il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./script: line 12: 1 : commande introuvable
    donc il donne le code retour de la commande mais il me dit commande introuvable de plus le test avec if me sort parfois 0=0
    j'utilise le bash
    Merci d'avance

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    condition=$(echo "$chaine" | grep "$sous_chemin" | wc -l)
    il ne doit pas y avoir d'espaces autour du signe égal.

    et, à titre indicatif, les évaluations arithmétiques se font entre double parenthèses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ((condition == 0 ))
    then...
    par ailleurs, si 0; alors n'existe pas; finsi !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut
    Merci N_BaH,
    oui le script marche

    juste une dernière question : mon script modifie une varible d'environement dans bashrc et je veux sourcer le .bashrc à partir de script
    mais ça marche pas ? est ce que tu sais pourquoi

    Merci d'avance

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    oui, c'est à cause des backticks : `
    c'est pour effectuer une substitution de commandes, cela crée un sous-shell, où sont exécutées les commandes. Or, les sous-shells ne communiquent pas leurs variables au shell principal.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut
    mais meme sans les backticks ça marche pas

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    ça marche pas
    la phrase qui tue ! ce n'est pas très explicite...

    qu'essaies-tu de faire ? comment ? y a-t-il un message d'erreur ? lequel ?

    effectivement, ça ne fonctionne pas avec .bashrc , il faut sourcer le script.
    mais ça fonctionne avec .profile

    mais bon, si tu veux que la variable soit également accessible en ligne de commande, il faut sourcer ton script...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. [PHP 5.2] Tester l'existence d'une sous-clé dans un tableau multi
    Par renaud26 dans le forum Langage
    Réponses: 2
    Dernier message: 25/05/2011, 17h22
  2. Réponses: 2
    Dernier message: 04/06/2010, 08h27
  3. existence d'une sous chaine pour un string
    Par john123 dans le forum Langage
    Réponses: 3
    Dernier message: 16/08/2007, 21h03
  4. Existance d'une sous chaine dans une chaine
    Par bonano dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/07/2007, 14h58
  5. Tester l'existence d'une table sous Access
    Par Oluha dans le forum Bases de données
    Réponses: 10
    Dernier message: 29/08/2005, 09h42

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