[gull] bash>for>word

Daniel Cordey dc at mjt.ch
Fri Oct 1 12:12:01 CEST 2004


On Friday 01 October 2004 11:40, Félix Hauri wrote:

> Ok, mais là tu génère un fork en dehors duquel tes variables n'existent
> plus! (Ou ne sont pas mises à jour)

On s'en f... cette notion de variable n'est pas genante si tu te contente 
d'utiliser des valeusr a l'interieure du while. Definir le contenu d'une 
variable a l'interieur du while pour etre utilise dans le shell appelant 
n'est pa stres courant. En 22 ans de programmation shell, ca ne m'a jamais 
pose de probleme et on arrive toujours a s'en sortir.

> De plus la boucle ``while ...;do ... ;done'' pour 1 itération peut être
> évitée avec des parenthèses, mais de toutes façons: fork. :-/

La boucle while n'est pas destinee a traiter juste une seule ligne... mais 
l'integralite du fichier, tel que :

while read name passwd uid ...
do
   echo ...
done </etc/passwd

> Cela aussi peut dérouter des débutants:
>   Ou est passé ma variable! :-<

Un programme shell est avant tout destine a manipuler des fichiers. Un 
programme complexe destine a faire du traitement de variables doit etre 
realise dans un langage plus adapte. Pour ce faire, il y a des langage tout 
aussi lisibles et nettement plus appropries (Tcl, php, Python, ...)

> (Ou bonne nuit à ceux qui décideront après cette dernière
>   commande de retourner dormir un coup;)

Avec le nombre de shift que tu as dans ta boucle... j'en deduis que tu as 
accomplis un 'night shift' ?-)

dc



More information about the gull mailing list