Andesi - forum

Forum francophone pour Debian

Vous n'êtes pas identifié(e).

#1 22/02/2009 00:28:35

pathe
Moderator
Lieu : shell (Seine et Marne)
Inscription : 21/11/2004
Messages : 815

[terminal sous X] dans un script, un espace initial indésirable

C'est incroyable ! Je tape le script suivant :

#!/bin/sh
echo "Bonjour, Monde !"

Et j'obtiens un espace avant le # :

cat essai
 #!/bin/sh
echo "Bonjour, Monde !"

À cause de cet espace initial, le script n'est pas exécutable :

$ ls -al
...
-rwxr-xr-x 1 pathe pathe 72 2009-02-21 23:21 essai
...

$ ./essai
bash: ./essai: cannot execute binary file

Vous y comprenez quelques chose ?
Dans d'autres répertoires, en modifiant des scripts déjà existants, ça fonctionne bien.

Je suis en UTF-8, au cas où ça puisse avoir une importance.


*********** GPG : 45F03D8C ***********

Hors ligne

#2 22/02/2009 15:55:35

ledub
Membre
Lieu : Creil (60)
Inscription : 22/04/2003
Messages : 4 545

Re : [terminal sous X] dans un script, un espace initial indésirable

Je te propose de convertir ton script à être plus sympa
cat essai| sed 's/^ //' > essai2 puis un chmod +x essai2

LeDub épathé par l'arrivée de cette espace !!!


« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!

Hors ligne

#3 22/02/2009 19:32:59

Tihz
Membre
Lieu : Paname
Inscription : 02/11/2006
Messages : 876

Re : [terminal sous X] dans un script, un espace initial indésirable

Salut Pathe,

Quand je récupère ton script et que je colle dans mon vi, l'espace dont tu parles est marqué comme <feff>.
Cela correspond plus ou moins à un espace insécable (http://fr.wikipedia.org/wiki/Marque_d%2 … des_octets).

Le shebang, tu l'as tapé toi-même ou tu l'as copié-collé d'ailleurs ?


Ce qu'il y a de bien avec les standards, c'est qu'il y en a beaucoup entre lesquels choisir.

Hors ligne

#4 22/02/2009 20:16:41

pathe
Moderator
Lieu : shell (Seine et Marne)
Inscription : 21/11/2004
Messages : 815

Re : [terminal sous X] dans un script, un espace initial indésirable

ledub a écrit :

Je te propose de convertir ton script à être plus sympa
cat essai| sed 's/^ //' > essai2 puis un chmod +x essai2

$ cat essai| sed 's/^ //' > essai2

$ cat essai2
 #!/bin/sh
echo "Bonjour, Monde !"

$ chmod +x essai2

$ ./essai2
bash: ./essai2: cannot execute binary file

Étrange, non ?

Tihz a écrit :

Le shebang, tu l'as tapé toi-même  ou tu l'as copié-collé d'ailleurs ?

Je l'ai tapé moi-même.
Je n'ai réussi à faire exécuter ce script en l'écrivant au début d'un autre fichier, dont j'ai commenté toutes les lignes préexistantes. Étrange, non ?


*********** GPG : 45F03D8C ***********

Hors ligne

#5 23/02/2009 12:57:47

Tihz
Membre
Lieu : Paname
Inscription : 02/11/2006
Messages : 876

Re : [terminal sous X] dans un script, un espace initial indésirable

En tapant ton script sur mon vi, ça passe sans soucis.
Tu utilises quel éditeur de texte pour voir si j'arrive a reproduire le bug chez moi ?


Ce qu'il y a de bien avec les standards, c'est qu'il y en a beaucoup entre lesquels choisir.

Hors ligne

#6 23/02/2009 13:04:18

pathe
Moderator
Lieu : shell (Seine et Marne)
Inscription : 21/11/2004
Messages : 815

Re : [terminal sous X] dans un script, un espace initial indésirable

Tihz a écrit :

Tu utilises quel éditeur de texte pour voir si j'arrive à reproduire le bug chez moi ?

J'utilise un bête vi sur un stupide terminal.


*********** GPG : 45F03D8C ***********

Hors ligne

#7 23/02/2009 14:04:40

ledub
Membre
Lieu : Creil (60)
Inscription : 22/04/2003
Messages : 4 545

Re : [terminal sous X] dans un script, un espace initial indésirable

pathe a écrit :

J'utilise un bête vi sur un stupide terminal.

Le J c'est pour idiot ?
Trêve de plaisanterie, as-tu supprimé ce caractère ?

LeDub qui sait que son Pathe est une bonne pâte !


« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!

Hors ligne

#8 23/02/2009 14:26:17

pathe
Moderator
Lieu : shell (Seine et Marne)
Inscription : 21/11/2004
Messages : 815

Re : [terminal sous X] dans un script, un espace initial indésirable

ledub a écrit :

Trêve de plaisanterie, as-tu supprimé ce caractère ?

Désolé, ledub, je pige pas : quel caractère ?


*********** GPG : 45F03D8C ***********

Hors ligne

#9 23/02/2009 15:19:34

ledub
Membre
Lieu : Creil (60)
Inscription : 22/04/2003
Messages : 4 545

Re : [terminal sous X] dans un script, un espace initial indésirable

pathe a écrit :

Désolé, ledub, je pige pas : quel caractère ?

Baj, le caractère avant le "#" !!!

LeDub qui pense que Pathe est empatheé !!


« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!

Hors ligne

#10 23/02/2009 15:45:00

Tihz
Membre
Lieu : Paname
Inscription : 02/11/2006
Messages : 876

Re : [terminal sous X] dans un script, un espace initial indésirable

bah le soucis, c'est que ce caractère n'apparais pas dans son vi. Juste lorsqu'il fait un cat.

Peut-etre y a t il une option de configuration de vi pour faire apparaitre les caractère spéciaux.

De mon coté, je regarderais ce soir si je vois quelque chose de spécial.

Et en supprimant la ligne et en la re-créant, il y a toujours cette espace ?

Dernière modification par Tihz (23/02/2009 15:45:37)


Ce qu'il y a de bien avec les standards, c'est qu'il y en a beaucoup entre lesquels choisir.

Hors ligne

#11 23/02/2009 17:43:17

ledub
Membre
Lieu : Creil (60)
Inscription : 22/04/2003
Messages : 4 545

Re : [terminal sous X] dans un script, un espace initial indésirable

Peut-être avec dos2unix, cela va lui faire du bien.

LeDub qui ne comprend pas tout !!


« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!

Hors ligne

Pied de page des forums