# Les script shell



## SuperCed (15 Août 2002)

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?


----------



## Membre supprimé 2 (15 Août 2002)

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.


----------



## SuperCed (15 Août 2002)

Ca fonctionne, c'etait juste une question de droit d'execution...
Mais il y avait aussi ce que tu me disais.
Merci beaucoup!


----------



## SuperCed (15 Août 2002)

#!/bin/sh

for  (( i = 0 ; i &lt;= 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 &lt;= 10 ; i++ )
do echo $i
done


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


----------



## cux221 (15 Août 2002)

TU rajoutes le . dans ta variable path, ça peut venir de là aussi


----------



## cux221 (15 Août 2002)

C'est bizarre, l'écriture de ta boucle ressemble plus à du C.


----------



## olof (15 Août 2002)

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


----------



## simon (15 Août 2002)

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


----------



## SuperCed (16 Août 2002)

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);
}


----------



## simon (17 Août 2002)

<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


----------



## SuperCed (17 Août 2002)

J'ai rien compris, merci de m'embrouiller  /ubbthreads/http://forums.macg.co/vbulletin/images/smiliesold/laugh.gif


----------



## simon (17 Août 2002)

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


----------



## olof (17 Août 2002)

Voilà, m'sieur....

<pre><font class="small">code:</font><hr>

#!/bin/sh

i=0;

while [ $i != 100 ];
   do echo $i;
   i=$[i+1];
done
</pre><hr>


A+


----------

