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 :

Problème avec script bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 197
    Points : 58
    Points
    58
    Par défaut Problème avec script bash
    Bonjour, voici mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/bash
     
    echo $1
     
    if [$1='83']
    then
    cd ./../Tycho2    
     
    echo "lecture suppl_1.dat"
    ./list 1 -2 5.5 345 195 30 90
     
    fi
    Si je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chmod 777 essai
    ./essai 83
    Voici ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    83
    ./essai: line 5: [83=83]: command not found
    D'ailleurs j'obtiens la même chose avec :ou encore avec :Pourtant mon script fonctionne sans problème si je retire la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
     
    cd ./../Tycho2    
     
    echo "lecture suppl_1.dat"
    ./list 1 -2 5.5 345 195 30 90
    Où est l'erreur ?
    Merci de votre aide

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    83 est numerique donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
     
    echo $1
     
    if [ $1 -eq 83 ]; then
    echo "lecture suppl_1.dat"
    /chemin/réel/et/complet/Tycho2/list 1 -2 5.5 345 195 30 90
    fi
    deplus ne fais pas de CD dans un shell script
    1. c'est dégueux
    2. si tu en as plusieurs ça rend vite le code illisible
    3. ça peut poser certains problèmes
    4. ça rend le code peu portable
    5. etc...etc...

  3. #3
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Salut,
    if [$1='83']
    Il faut mettre des espaces :
    if [ $1 = '83' ]
    car '[' et ']' sont des commandes et qu'entre chaque commande il faut un espace

  4. #4
    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 frp31
    8
    deplus ne fais pas de CD dans un shell script
    1. c'est dégueux
    2. si tu en as plusieurs ça rend vite le code illisible
    3. ça peut poser certains problèmes
    4. ça rend le code peu portable
    5. etc...etc...
    Tout a fait d'accord.
    Mais utiliser {push,pop}d peut se révéler agréable ;-)
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  5. #5
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 197
    Points : 58
    Points
    58
    Par défaut
    Comment faire pour executer un programme qui n'est pas dans le répertoire courant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./../Tycho2/list 1 -2 5.5 345 195 30 90
    ne fonctionne pas, alors que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd ./../Tycho2
    ./list 1 -2 5.5 345 195 30 90
    fonctionne bien.

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Salut,

    En fait il faut rajouter le répertoire courant au PATH pour que ça fonctionne ( il me semble )

    Teste une fois ça, sinon on avisera

    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

Discussions similaires

  1. Probleme avec script bash SQLplus et Crontab
    Par E LABOUREAU dans le forum Sql*Plus
    Réponses: 5
    Dernier message: 17/06/2013, 15h01
  2. problème avec script bash
    Par lostsoul dans le forum Administration système
    Réponses: 5
    Dernier message: 16/08/2012, 18h42
  3. Réponses: 7
    Dernier message: 24/02/2012, 14h04
  4. Probleme avec mon bash script
    Par spynux dans le forum Linux
    Réponses: 1
    Dernier message: 30/03/2006, 09h21
  5. Script bash : Pb avec sed
    Par fred64 dans le forum Linux
    Réponses: 3
    Dernier message: 19/08/2005, 11h24

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