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 :

script shell ne reconnais pas let


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut script shell ne reconnais pas let
    Bonjour à tous j'ai un petit soucis, je dois développer des script shell de base pour mes TP en cours mais le shell ne reconnais pas l'instruction let alors que la ligne de commande si....

    je ne sais pas quel paquet installer....

    please help !

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Commence par mettre un "#!/bin/bash" ou "#!/bin/ksh" comme première ligne de ton fichier.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    déjà fait...

    mon script :

    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
    17
    18
    19
    #!/bin/sh
     
    nbrep=0
    nbfic=0
     
    for i in `ls`
    do
     if [ -f $1 ]
     then
      let `nbfic=$nbfic+1`
     else
      if [ -d $1 ]
      then
       let `nbrep=$nbrep+1`
      fi
     fi
    done
    echo $nbfic
    echo $nbrep
    et à l'execution il m'affiche "let not found" alors que lorsque je tape successivement sur la ligne de commande
    il m'affiche bien 1

    c'est à n'y rien comprendre....

  4. #4
    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 123
    Points
    28 123
    Par défaut
    Bonjour,

    Dans un cas, tu écris

    et dans l'autre

    Pourquoi cette différence ? As-tu essayé de supprimer ces guillemets ?

  5. #5
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Tu remarqueras que dans ton script, l'instruction let n'a rien à voir avec celle tapée en mode commande

    script --> let `nbfic=$nbfic+1`

    commande --> let a=1

    En shell, l'incrément de compteur se fait comme suit :

    ou


  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par MortDansLAme Voir le message
    déjà fait...
    Ben non, c'est pas déjà fait. Je t'ai suggèré de dire à ton O/S que ton script est du ksh ou du bash mais tu met que c'est du sh:

    Essaie ce que je t'ai suggéré, et dis nous aussi sur quel O/S tu es.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    je suis sous Ubuntu.

    je vai essayer pour l'incrément.

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par MortDansLAme Voir le message
    je suis sous Ubuntu.
    Ceci explique l'erreur que tu obtiens. Sous les Ubuntu récentes, /bin/sh ne pointe pas vers bash mais dash.

    Ceci a mis en évidence quantité de bugs dans des scripts qui assument à tort que bash et sh sont synonymes.
    je vai essayer pour l'incrément.
    Si tu veux mon avis, mais il n'a pas l'air de beaucoup t'interesser, laisse tomber cette piste et tiens compte de la solution que j'ai indiqué.

  9. #9
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par BlaireauOne Voir le message
    En shell, l'incrément de compteur se fait comme suit :

    ou

    La permière méthode, (à laquelle il manque aussi une parenthèse fermante) n'est pas portable.

    Un syntaxe fonctionnant avec tous les shells compatibles bourne, y compris les plus anciens non POSIX, est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbfic=`expr $nbfic + 1`

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    et comment je fait pour faire pointer /bin/sh vers bash ?

  11. #11
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Techniquement c'est très simple, mais tu n'as "pas le droit" de le faire puisque c'est un choix de ta distribution. De plus, tu dégraderais légèrement les performances de ta machine.

    Puisque tu écrit un script bash, pourquoi t'obstines-tu à ne pas l'indiquer à ton O/S ?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    et comment faire ce prodige ?

  13. #13
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Citation Envoyé par MortDansLAme Voir le message
    et comment faire ce prodige ?
    Citation Envoyé par jlliagre
    Commence par mettre un "#!/bin/bash" ou "#!/bin/ksh" comme première ligne de ton fichier.
    A quoi ça sert qu'on se décarcasse si tu ne lis pas les réponses et restes obstiné ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    bah j'ai lu mais je n'avai pas fait le rapport entre ces deux trucs là c'est tout...

    j'ai essayé mais rien ne se passe c'est toujours la meme chose il me met sur la ligne de commande

    "let not found"

    peut etre ais-je un paquet qui n'est pas installé ?

  15. #15
    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
    Citation Envoyé par MortDansLAme Voir le message
    bah j'ai lu mais je n'avai pas fait le rapport entre ces deux trucs là c'est tout...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ type let
    let is a shell builtin
    Citation Envoyé par MortDansLAme Voir le message
    j'ai essayé mais rien ne se passe c'est toujours la meme chose il me met sur la ligne de commande
    Alors change de shell...

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    je crois que je vai tout simplement changer de distribution,

    quelle distribution linux est la meilleur pour la prog ?

    j'hésite enre debian, suze ou la petite zenwalk qui vient de sortir...

    d'après vous ?

  17. #17
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    Toute les distri se valent. Y en pas une qui est mieux pour developper qu'une autre. Surtout pour faire des script shell, vi est sur toutes .

  18. #18
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par MortDansLAme Voir le message
    j'ai essayé mais rien ne se passe c'est toujours la meme chose il me met sur la ligne de commande

    "let not found"
    Tu as essayé quoi exactement ?

    Peux-tu executer ce petit script et nous dire ce qu'il retourne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/bash
    set | grep BASH_VERS
    let a=2

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut
    j'ai codé le script que tu m'a donné et voila ce que ca donne à l'execution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mortdanslame@angenoir:~$ sh test.sh
    test.sh: 3: let: not found
    mortdanslame@angenoir:~$
    donc voila ca ne marche toujours pas...

  20. #20
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    J'ai repris ton script:
    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
    17
    18
    19
    20
     
    #!/bin/bash
     
    nbrep=0
    nbfic=0
     
    for i in `ls`
    do
     if [ -f $1 ]
      then
        let nbfic=$nbfic+1
         else
           if [ -d $1 ]
             then
                let nbrep=$nbrep+1
                  fi
                   fi
                   done
                   echo $nbfic
                   echo $nbrep
    lancer par un

    Et ca marche. Donc je sais pas comment tu fais...

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/06/2010, 15h45
  2. Script shell pour tester si un répertoire est vide ou pas
    Par Ito dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/10/2006, 17h44
  3. Script shell ne fonctionne pas
    Par alexp dans le forum Linux
    Réponses: 7
    Dernier message: 15/06/2006, 16h41
  4. Mon script cron n'est pas pris en compte
    Par tomnie dans le forum Linux
    Réponses: 11
    Dernier message: 31/03/2004, 11h19
  5. Cron + terminal + script shell
    Par nicolas.pissard dans le forum Linux
    Réponses: 3
    Dernier message: 17/03/2004, 09h24

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