Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Une bizarrerie de bash
Envoyé par: Sve@r

J'ai découvert cette bizarrerie pendant un cours que je donnais dernièrement.
Un de mes élèves avait oublié le "#!/bin/bash" en début de son script et faisait un simple
echo "Donnez le nombre de départ"
Eh bien ce simple "echo" en début de script m'a donné l'erreur
Citation

/bin/bash: cannot execute binary file

J'ai fait des tests divers et variés. Il en a résulté que l'erreur ne se produit que :
- s'il y a un caractère accentué dans la phrase ("départ")
- si le "echo" se trouve en première ligne du script

Si un de ces éléments n'est pas vérifié, pas d'erreur (ex: remplacer "départ" par "depart" et tout se passe bien)

Etonnant non ? Si quelqu'un a une explication...

Pour info: Je suis en bash v3.1.7

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Tuesday 3 April 2007 17:19:34
Répondre     Citer    
Re: Une bizarrerie de bash
Envoyé par: tg(y)

À mon avis, quand tu ./ton_script, Bash, par défaut :
* si ça commence par de l'ASCII, l'interprête ;
* si ça commence par du non ASCII, essaie de le charger.

Là, tu as un accent dans la première ligne, donc il pense que c'est du binaire.

Poste le Tuesday 3 April 2007 19:07:06
Répondre     Citer    
Re: Une bizarrerie de bash
Envoyé par: oudoubah

Sur la version 3.2.5 de bash, le problème n'apparaît pas.
Cela ressemble plus à un bug (ou une feature ;-))

Je pense comme tg(y), il doit tester si la première ligne est de l'ASCII pour savoir quoi en faire.

Le message d'erreur est assez étonnant, vu que d'habitude on l'obtient en explicitant le shell pour lancer la commande :
sh /bin/ls
. Or, dans ton cas, il est lancé par
./mon_script
?-(
C'est pourquoi je penche plus pour un beau bug.

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Tuesday 3 April 2007 23:30:08
Répondre     Citer    
Re: Une bizarrerie de bash
Envoyé par: tg(y)

Ah, j'avais mal lu, un beau bug, en effet : il regarde la première ligne, tiens, ce n'est pas de l'ASCII, c'est donc du binaire, mais que veux-tu que j'en fasse, je ne sais pas interprêter ça, moi...

Poste le Wednesday 4 April 2007 00:02:44
Répondre     Citer    
Re: Une bizarrerie de bash
Envoyé par: lolotux

Dans la version 3.1.17 ce bug n'apparait plus !

lolo@bea-laptop:~$ echo "élancée comme une gazelle"
élancée comme une gazelle

Software is like sex !
It's better when it's Free !

Poste le Wednesday 4 April 2007 03:43:57
Répondre     Citer    
Re: Une bizarrerie de bash
Envoyé par: Fanch

Ca serait pas un problème de locales tout simplement ?
parce que sur ma station (du taf) :

$ cat tototest.sh
echo "bonjour à tous !"

$ chmod u+x tototest.sh
$ ./tototest.sh
bonjour à tous !
$ bash --version
GNU bash, version 3.00.15(1)-release bla bla bla
$ locale
LANG=fr_FR
... et tout est à fr_FR

au passage lolotux : alors comme ça tu bosses chez bea ?

------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Wednesday 4 April 2007 08:38:13
Répondre     Citer    
Re: Une bizarrerie de bash
Envoyé par: Sve@r

Citation
lolotux
Dans la version 3.1.17 ce bug n'apparait plus !

lolo@bea-laptop:~$ echo "élancée comme une
gazelle"
élancée comme une gazelle
Cela se passe dans un script, pas en ligne de commande !!!

Citation
Fanch
Ca serait pas un problème de locales tout
simplement ?
parce que sur ma station (du taf) :

$ cat tototest.sh
echo "bonjour à tous !"

$ chmod u+x tototest.sh
$ ./tototest.sh
bonjour à tous !
$ locale
LANG=fr_FR
... et tout est à fr_FR
EXCELLENT !!! En effet, quand j'ai mis "export LC_ALL=fr_FR" tout s'est très bien passé !!!

Encore un mystère brillement résolu par l'équipe des forumeurs de lea :chef:

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Wednesday 4 April 2007 19:08:17
Répondre     Citer    
Re: Une bizarrerie de bash
Envoyé par: Fanch

on est trop forts :-)) ce soir je me fais un cla#%btis pour m'auto-féliciter !

bah tiens, du coup ma journée commence bien !

------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Thursday 5 April 2007 08:54:51
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Une bizarrerie de bash
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons