Rechercher : dans
Par :

Menu en Bash: Erreur sur echo (???)

Dernière réponse le 6 sep 2008 à 01:12:57 budhax, le 4 sep 2008 à 20:49:15 
 Signaler ce message aux modérateurs

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 s'emble que ça ne concerne que les chaine 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

bt Desktop # menu.sh
-bash: ./menu.sh: /bin/bash^M: bad interpreter: No such file or directory



STEP_B: I remove the 1st line


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.


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

#!/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
#---------------------------------------------------------------------------------------------------
Configuration: BackTrack 3, KDE 3.5.7, Linux BT 2.6.21.5, Bash 3.1.17.

Meilleures réponses pour « Menu en Bash: Erreur sur echo (???) » dans :
[Ubuntu 9.04] Installer VLC 1.0 Voirsudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7613768D sudo bash -c 'echo "deb http://ppa.launchpad.net/c-korn/vlc/ubuntu jaunty main" > /etc/apt/sources.list.d/launchpad_vlc.list' sudo apt-get update sudo apt-get install vlc vlc...
Linux - Ubuntu - Convertir un DVD en DivX (avec HandBrake) VoirHandBrake est un bon logiciel pour convertir des vidéos, par exemple des DVD en DivX. Voici comment procéder sous Ubuntu: Ajouter les dépôts pour Handbrake sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 62D38753 sudo bash -c 'echo...
Modifier le délai d'affichage du menu Gnome VoirTapez simplement: echo "gtk-menu-popup-delay = 0" >> ~/.gtkrc-2.0 puis fermez et ré-ouvrez votre session. Et voilà: Le petit délai d'affichage du menu Gnome est supprimé: Les sous-menus s'ouvrent plus vite. (Astuce inspirée de LifeHacker)
Windows 7 - Barre des tâches et menu démarrer VoirLA BARRE DES TACHES ET LE MENU DEMARRER Cet élément clé du Bureau de Windows est situé en bas de l’écran, sur toute sa largeur. C’est l’un des aspects du système qui a le plus évolué entre Windows Vista et Windows 7. Pour commencer, elle est plus...
Le contrôle des erreurs VoirLe contrôle d'erreurs Le codage binaire est très pratique pour une utilisation dans des appareils électroniques tels qu'un ordinateur, dans lesquels l'information peut être codée grâce à la présence ou non d'un signal électrique. Cependant le...

1

jipicy, le 4 sep 2008 à 20:58:33
  • +1

Salut,

Convertis ton fichier au format UNIX avec "dos2unix" ou avec sed (voir dans la FAQ), et ça devrait aller mieux ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

 budhax, le 6 sep 2008 à 01:12:57

Problème(s) fixé avec la commande dos2unix , merci jipicy.

dos2unix menu.sh


http://www.commentcamarche.net/faq/sujet 5978 sed conversion retours chariots dos crlf unix lf

Répondre à budhax