[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
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

Poser une question


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...
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) ... ;-))
Non, normalement, ça doit passer, le do seul avec saut de ligne équivaut
à "do ;" (do rien du tout) donc, c'est correct.
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
je vais aller voir par là...
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
non plus, ni les permissions, ni les chemins vers sh ou bash...
je sèche total.
seb
seb
C'est bon.
Je l'ai refait sur ma machine et ça marche nickel.
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.
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.
non, seulement la première commande!
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
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: