GNT sans publicité, site mobile, fonctionnalitées exclusives...

[Newbie] script bash

Le
seb
salut,
je capte rien au bash,
je fais un mini script test.sh qui contient:

#!/bin/bash
for i in 1 2 3
do
echo $i
done

si je fais ./test.sh j'obtiens l'erreur suivante:
bash: ./test.sh: bad interpreter: No such file or directory

si je fais /bin/bash test.sh j'obtiens l'erreur suivante:
'est.sh: line 3: syntax error near unexpected token `do
'est.sh: line 3: `do

A noter que si , dans mon script j'ai:
do echo $i
alors ça passe, mais je ne vais pas tout mettre sur une seule ligne quand
même !

Comment on fait tourner un script bash ? J'ai du rater un truc de base

seb
Lire les 4 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ericb
Le #1432736
Bonjour,


salut,
je capte rien au bash,


Si tu débutes, il y a un forum pour unix :

fr.comp.os.unix

N'hésite pas, il y a des champions toujours prêts à aider...

je fais un mini script test.sh qui contient:

#!/bin/bash
for i in 1 2 3
do
echo $i
done

si je fais ./test.sh j'obtiens l'erreur suivante:
bash: ./test.sh: bad interpreter: No such file or directory



Chez moi, ça passe tout droit...

#!/bin/bash

for i in 1 2 3
do
echo $i
done


donne :

1
2
3


Remarque : pour jouer, remplace "1 2 3" par $(seq 1 5 ) puis $( seq 1
2 11) ... ;-))


A noter que si , dans mon script j'ai:
do echo $i
alors ça passe, mais je ne vais pas tout mettre sur une seule ligne quand
même !


Non, normalement, ça doit passer, le do seul avec saut de ligne équivaut
à "do ;" (do rien du tout) donc, c'est correct.

Comment on fait tourner un script bash ? J'ai du rater un truc de base...


AMHA (mais je peux me tromper) , c'est un caractère non affichable qui
est dans ton texte...

Qu'est-ce que ça donne quand tu édites ce texte dans vi (vi ./test.sh )
? Autrement dit, n'y aurait-t-il pas des caractères supplémentaires,
comme ^M (CTRL-M ) . Cela arrive quand on passe par windows pour
éditer un fichier texte...


--
eric b

seb
Le #1138283
"ericb" news:41376cbd$0$8296$
fr.comp.os.unix
N'hésite pas, il y a des champions toujours prêts à aider...


je vais aller voir par là...


Chez moi, ça passe tout droit...

#!/bin/bash

for i in 1 2 3
do
echo $i
done


au cas où:
- je me connecte au serveur en ssh avec putty
- je crée un fichier avec ce bout de code dedans
- et je lance /bin/bash test.sh
- et paf erreur !

d'ailleur ça ne devrait pas marcher tout seul avec seulement ./test.sh ?
parce que dans ce cas là l'interpreteur ne semble meme pas lire le fichier

par contre j'ai remarqué que ça passe si je met:
for i in 1 2 3
do echo $i
done

et ça passe également si directement en ligne de commande je colle (puis
entrée) le code (notez le do sur une seule ligne):
for i in 1 2 3
do
echo $i
done

AMHA (mais je peux me tromper) , c'est un caractère non affichable qui
est dans ton texte...


non plus, ni les permissions, ni les chemins vers sh ou bash...

je sèche total.
seb

Licence IV
Le #1138022
Le Thu, 2 Sep 2004 20:18:00 +0200, après mûre réflexion,
seb
#!/bin/bash
for i in 1 2 3
do
echo $i
done


C'est bon.
Je l'ai refait sur ma machine et ça marche nickel.

si je fais ./test.sh j'obtiens l'erreur suivante:
bash: ./test.sh: bad interpreter: No such file or directory


Hmmm!
la ça voudrait dire que tu as une erreur sur la première ligne (le
#!/bin/bash)
fait un which bash
et un bash --version
histoire d'avoir toutes les donnés.

si je fais /bin/bash test.sh j'obtiens l'erreur suivante:
'est.sh: line 3: syntax error near unexpected token `do
'est.sh: line 3: `do


bizarre!

Fait un
file test.sh
Pour vérifier que tu as bien ça:
test.sh: Bourne-Again shell script text executable
sinon, donnes nous le résultat.

A noter que si , dans mon script j'ai:
do echo $i
alors ça passe, mais je ne vais pas tout mettre sur une seule ligne quand
même !


non, seulement la première commande!

Comment on fait tourner un script bash ? J'ai du rater un truc de base...


Quand tu mets #!/bin/bash en début de ton script, tu n'as pas besoin de
le lancer en faisant /bin/bash test.sh

--
Nicolas de Ferrières Mail:
_______________________________________________________________
Si l'alcool ne me tue pas... Les femmes auront ma peau

chimay
Le #1138016
hello,

j'ai eu le même problème avec un fichier crée sous windows
(pour cygwin) Surement un pb de fin de ligne. C/C --> autre
fichier et ca devrait fonctionner ;)

seb wrote:
salut,
je capte rien au bash,
je fais un mini script test.sh qui contient:

#!/bin/bash
for i in 1 2 3
do
echo $i
done

si je fais ./test.sh j'obtiens l'erreur suivante:
bash: ./test.sh: bad interpreter: No such file or directory

si je fais /bin/bash test.sh j'obtiens l'erreur suivante:
'est.sh: line 3: syntax error near unexpected token `do
'est.sh: line 3: `do

A noter que si , dans mon script j'ai:
do echo $i
alors ça passe, mais je ne vais pas tout mettre sur une seule ligne quand
même !

Comment on fait tourner un script bash ? J'ai du rater un truc de base...

seb




Publicité
Suivre les réponses
Poster une réponse
Anonyme