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 :

Menu en Bash: Erreur sur echo (de quoi s'arracher les cheveux)


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 44
    Points : 33
    Points
    33
    Par défaut Menu en Bash: Erreur sur echo (de quoi s'arracher les cheveux)
    Bonjour,
    MA CONFIG: BackTrack 3, KDE 3.5.7, Linux BT 2.6.21.5, Bash 3.1.17.
    Sous cette config mon script "menu.sh" génère quelques erreurs.
    http://www.airfirst.ch/b2/menu.sh
    Voir l'output plus bas.
    Comment les résoudre?

    1. L'erreur sur la 1ère ligne: -bash: ./menu.sh: /bin/bash^M: bad interpreter: No such file or directory

    2. Les erreur d'affichage des commandes: 03,05,06,08,11. Il semble que ça ne concerne que les chaines qui ont quelque chose après une variable !!!

    3. L'erreur sur la ligne 31 (dans le bloc "case").

    4. Question à 10000 points !!!!!
    Que pourrait être la raison (à s'arracher les cheveux) de ceci:

    - Teste du menu1.sh, OK sans erreur.
    http://www.airfirst.ch/b2/menu1.sh
    http://www.airfirst.ch/b2/outpu_menu1.txt
    - Avec l'éditeur Kate, Copier tout le contenu de meni1.sh et coller dans menu.sh vide.
    - Teste de menu.sh done l'erreur: -bash: ./menu.sh: /bin/bash^M: bad interpreter: No such file or directory

    Qui puis-je maudire: Linux, Bash ou ... ?????

    Merci


    STEP_A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bt Desktop # menu.sh
    -bash: ./menu.sh: /bin/bash^M: bad interpreter: No such file or directory

    STEP_B: I remove the 1st line


    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
    21
    22
    23
    24
    bt Desktop # menu.sh
    : command not found
    : command not found
    ./menu.sh: line 13: menu: command not found
     
    ********************* TEST MENU
    INIT
     01  ls
     02  dir eth1
     -alldir eth1
     04  iwlist eth1
     scaniwlist eth1
     mode monitor eth1
     07  echo start eth1
     up hw ether 50:41:32:23:14:05
    MAIN
     09  Set ESSID: []
     10  Set BSSID: []
     eth1echo --write file
     12  echo --test -e  -a  eth1
    Choix? 01
    ': not a valid identifier `com
    '/menu.sh: line 31: syntax error near unexpected token `in
    '/menu.sh: line 31: `  case "$com" in
    STEP_C: I replaced "$CN1" by its value "eth1" for commands 03,05,06,08,11.


    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
    21
    22
    23
    24
    bt Desktop # menu.sh
    : command not found
    : command not found
    ./menu.sh: line 13: menu: command not found
     
    ********************* TEST MENU
    INIT
     01  ls
     02  dir eth1
     03  dir eth1 -all
     04  iwlist eth1
     05  iwlist eth1 scan
     06  iwconfig eth1 mode monitor
     07  echo start eth1
     08  ifconfig eth1 up hw ether 50:41:32:23:14:05
    MAIN
     09  Set ESSID: []
     10  Set BSSID: []
     eth1echo --write file
     12  echo --test -e  -a  eth1
    Choix? 01
    ': not a valid identifier `com
    '/menu.sh: line 31: syntax error near unexpected token `in
    '/menu.sh: line 31: `  case "$com" in
    menu.sh

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #!/bin/bash
     
    #------------------------------------------------------------------------------------ Initialisation
    DFN=file
    CN1=eth1
    CN2=rausb0
    RTAP0=rtap0
    MESSID=IPW22
    FIP_100=192.168.1.100
    FIP_101=192.168.1.101
    MAC=50:41:32:23:14:05
    #----------------------------------------------------------------------------------------- Functions
    menu {
      echo 
      echo "********************* TEST MENU"
      echo "INIT"
        com01="ls"                                              ; echo " 01  $com01"
        com02="dir $CN1"                                        ; echo " 02  $com02"
        com03="dir $CN1 -all"                                   ; echo " 03  $com03"
        com04="iwlist $CN1"                                     ; echo " 04  $com04"
        com05="iwlist $CN1 scan"                                ; echo " 05  $com05"
        com06="iwconfig $CN1 mode monitor"                      ; echo " 06  $com06"
        com07="echo start $CN1"                                 ; echo " 07  $com07"
        com08="ifconfig $CN1 up hw ether $MAC"                  ; echo " 08  $com08"
      echo "MAIN"
        com09="Set ESSID: [$ESSID]"                             ; echo " 09  $com09"
        com10="Set BSSID: [$BSSID]"                             ; echo " 10  $com10"
        com11="echo --write $DFN $CN1"                          ; echo " 11  $com11"
        com12="echo --test -e $ESSID -a $BSSID $CN1"            ; echo " 12  $com12"
      read -p "Choix? " com
      case "$com" in
        01) eval "$com01";;
        02) eval "$com02";;
        03) eval "$com03";;
        04) eval "$com04";;
        05) eval "$com05";;
        06) eval "$com06";;
        07) eval "$com07";;
        08) eval "$com08";;
        09) read -p "ESSID ? " ESSID;;
        10) read -p "BSSID ? " BSSID;;
        11) eval "$com11";;
        12) eval "$com12";;
        * ) echo "BYE ...."; exit;;
      esac
    }
    #---------------------------------------------------------------------------------------------- BODY
    while true; do menu
    done
    exit
    #---------------------------------------------------------------------------------------------------

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par budhax Voir le message
    Bonjour,
    MA CONFIG: BackTrack 3, KDE 3.5.7, Linux BT 2.6.21.5, Bash 3.1.17.
    Sous cette config mon script "menu.sh" génère quelques erreurs.
    http://www.airfirst.ch/b2/menu.sh
    Voir l'output plus bas.
    Comment les résoudre?

    1. L'erreur sur la 1ère ligne: -bash: ./menu.sh: /bin/bash^M: bad interpreter: No such file or directory
    Il est quasiment certain que t'as importé ce menu via ftp ou via zip depuis le monde zindow. Le caractère "EOL" n'a pas été changé et l'interpréteur shell Linux ne pige pas ce "CTRL-M".
    Tente "dos2unix menu.sh"

    Pour le reste, on verra après...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Points : 426
    Points
    426
    Par défaut
    Pour le coup du
    -bash: ./menu.sh: /bin/bash^M: bad interpreter: No such file or directory
    , j'ai envie de dire noob, mais c'est pas très sympa.
    Sinon, pour faire un menu, tu peux utiliser la commande select. Ca marche en korn, mais aussi en bash
    Plus d'info ici par exemple.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Problème(s) fixé(s) avec la commande dos2unix , merci à tous.


Discussions similaires

  1. S'arrache les cheveux sur son DM :P
    Par Stanyslas dans le forum Requêtes
    Réponses: 0
    Dernier message: 19/04/2011, 19h57
  2. Erreur sur echo
    Par nounou0018 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 01/04/2011, 16h38
  3. erreur sur securité menu sous forms 10g
    Par ouatmad dans le forum Forms
    Réponses: 1
    Dernier message: 22/03/2008, 12h38
  4. [VBA-E]erreur sur création d'une barre de menu
    Par roseau dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/03/2007, 11h17
  5. message d'erreur sur java! c'est à dire quoi?
    Par amal000 dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2006, 16h58

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