Les script shell

SuperCed

Membre expert
Club iGen
20 Juin 2001
1 347
72
45
superced.rb38.eu
Quelqu'un pourrait m'expliquer comment on fait un script shell sous MacOS X.

J'ai essaye de taper :

#!/bin/tcsh

echo "Hello"


ou

do echo "Hello"

Je demande de l'ouvrir avec le terminal et ca me dit :
Le document ne doit pas etre executable.

J'ai mis tous les droits sur ce fichier avec chmod 777.

Ca ne marche toujours pas.
Que me manque-t-il?
Pourquoi ca se lance pas?
Comment faire?
 
Tu as essayé de mettre un ./ devant le nom de ton fichier pour l'éxécuter ?

parce que t'on fichier est correct pour moi.
 
Ca fonctionne, c'etait juste une question de droit d'execution...
Mais il y avait aussi ce que tu me disais.
Merci beaucoup!
 
#!/bin/sh

for (( i = 0 ; i <= 10 ; i++ ))
do echo $i
done


Ca marche pas.
Pourquoi?
Il me dit que les parenthese sont mal placees ou qu'il y a un probleme avec.

J'ai essaye ca :

#!/bin/sh

for ( i = 0 ; i <= 10 ; i++ )
do echo $i
done


mais ca fonctionne pas non plus.
J'ai pris ces exemple sur un site...

 
Salut,

en effet, ta boucle est écrite avec la syntaxe du langage C, C++, Java, ...

Sauf erreur de ma part (je ne suis de loin pas un grand utilisateur de script shell), la boucle FOR n'est pas du tout utilisée de la même manière qu'avec un langage de programmation traditionnel.
La boucle FOR est surtout utilisée pour balayer le contenu d'un répertoire.

Essaye de code suivant :

<pre><font class="small">code:</font><hr>
#!/bin/sh

for i in * ;
do echo $i
done
</pre><hr>

Sinon, pour faire une boucle de 1 à 5, tu peux faire comme ça :

<pre><font class="small">code:</font><hr>
#!/bin/sh

for i in 1 2 3 4 5 ;
do echo $i
done
</pre><hr>

Pas pratique, mais ça marche /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif

Le mieux si tu veux vraiment faire une boucle/compteur, c'est d'utiliser while, je pense...

A+

PS: Si un expert pouvait confirmer, ça serait sympa /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif
 
<pre><font class="small">code:</font><hr> foreach &lt;variablename&gt; ( &lt;items list&gt; )
&lt;first command&gt;
&lt;second command&gt;
end </pre><hr>

<pre><font class="small">code:</font><hr> while ( &lt;comparaison&gt; )
&lt;first commande&gt;
&lt;second commande&gt;
end </pre><hr>
 
Tu veux pas me donner un exemple de script correspondant a ca en C :

int i;
for (i=0;i&lt;100;i++) {
printf("\n%d",i);
}
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par SuperCed:</font><hr /> Tu veux pas me donner un exemple de script correspondant a ca en C :

int i;
for (i=0;i&lt;100;i++) {
printf("\n%d",i);
}
<hr /></blockquote>

je te propose ceci http://forums.macg.co/ubbthreads/showflat.php?Cat=&amp;Board=UBB33&amp;Number=204830&amp;page=0&amp;view=collapsed&amp;sb=5&amp;o=&amp;fpart=1#Post206122 tu verras y a des boucles /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif
 
J'ai rien compris, merci de m'embrouiller /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif
 
SuperCed a dit:
J'ai rien compris, merci de m'embrouiller /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif

/ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif

j'arrive pas à retrouver mon polycopié la dessus, fait ch..... euh pardon /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/wink.gif juré dès que je le retrouve je te fais signe /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/wink.gif