c'est ce que j'ai cru faire en faisant export VAR avant le for !!!!
Ne le prends pas mal, mais si tu veux coder correctement en shell, il va falloir lire une bonne doc. Par exemple :
http://ploug.eu.org/doc/guide-bourne-shell.pdf
En y allant par essai-erreur, tu vas galérer pour arriver à un résultat plutôt médiocre.
-- Matthieu
tu as raison, mais la j'avais un script a faire rapidos pour sauvegarder des backups systemes.
Matthieu Moy
le pierre writes:
tu as raison, mais la j'avais un script a faire rapidos pour sauvegarder des backups systemes.
Bah, c'est le genre de chose que je ne ferais pas « rapidos », justement. C'est un coup à avoir des backups foireux, et à ne s'en rendre compte que trop tard ...
-- Matthieu
le pierre <p.hirth@gmail.com> writes:
tu as raison, mais la j'avais un script a faire rapidos pour
sauvegarder des backups systemes.
Bah, c'est le genre de chose que je ne ferais pas « rapidos »,
justement. C'est un coup à avoir des backups foireux, et à ne s'en
rendre compte que trop tard ...
tu as raison, mais la j'avais un script a faire rapidos pour sauvegarder des backups systemes.
Bah, c'est le genre de chose que je ne ferais pas « rapidos », justement. C'est un coup à avoir des backups foireux, et à ne s'en rendre compte que trop tard ...
-- Matthieu
Vincent Lefevre
Dans l'article , le pierre écrit:
tu as raison, mais la j'avais un script a faire rapidos pour sauvegarder des backups systemes.
Note que Perl peut être préférable (e.g. si tu dois gérer des timeout, car les traps sont trop mal foutus en shell POSIX).
Le 19/06/2007 03:57, Vincent Lefevre me répondait :
Tiens ? Je connaissais les parenthèses mais pas les accolades.
Les parenthèses, ça exécute un sous-shell, donc qui a un environnement différent, et les effets secondaires éventuels (e.g. modification de variable ou du répertoire de travail courant) ne seront pas visibles dans le parent. Dans le cas général, l'utilisation des accolades est la solution correcte.
Je suis en train de lire la doc indiquée par Matthieu Moy : http://ploug.eu.org/doc/guide-bourne-shell.pdf
Cette doc date de 1991, soit seulement 3 ou 4 ans après que j'ai appris à me servir du shell. Il n'est pas question des accolades, ce qui explique probablement pourquoi je ne connaissais que les parenthèses (ça n'existait peut-être pas dans les shells de l'époque). En revanche, une petite phrase concernant les instructions de contrôle devrait à mon avis s'appliquer aussi aux accolades, et faire qu'en l'occurrence il n'y aurait aucune différence entre les deux dans l'exemple donné.
Quand on redirige ou que l'on pipe [sic] les entrées-sorties ou que l'on met dans l'arrière plan une telle structure, celle-ci est exécutée dans un sous-shell. [...] </cit.>
Donc, si ce que je suppose est vrai, { ... } > ${i}.log est équivalent à ( ... ) > ${i}.log à cause de la redirection de stdout vers un fichier.
Le 19/06/2007 03:57, Vincent Lefevre me répondait :
Tiens ? Je connaissais les parenthèses mais pas les accolades.
Les parenthèses, ça exécute un sous-shell, donc qui a un environnement
différent, et les effets secondaires éventuels (e.g. modification de
variable ou du répertoire de travail courant) ne seront pas visibles
dans le parent. Dans le cas général, l'utilisation des accolades est
la solution correcte.
Je suis en train de lire la doc indiquée par Matthieu Moy :
http://ploug.eu.org/doc/guide-bourne-shell.pdf
Cette doc date de 1991, soit seulement 3 ou 4 ans après que j'ai appris
à me servir du shell. Il n'est pas question des accolades, ce qui
explique probablement pourquoi je ne connaissais que les parenthèses
(ça n'existait peut-être pas dans les shells de l'époque). En revanche,
une petite phrase concernant les instructions de contrôle devrait à mon
avis s'appliquer aussi aux accolades, et faire qu'en l'occurrence il n'y
aurait aucune différence entre les deux dans l'exemple donné.
Quand on redirige ou que l'on pipe [sic] les entrées-sorties ou que l'on
met dans l'arrière plan une telle structure, celle-ci est exécutée dans
un sous-shell. [...]
</cit.>
Donc, si ce que je suppose est vrai,
{ ... } > ${i}.log
est équivalent à
( ... ) > ${i}.log
à cause de la redirection de stdout vers un fichier.
Le 19/06/2007 03:57, Vincent Lefevre me répondait :
Tiens ? Je connaissais les parenthèses mais pas les accolades.
Les parenthèses, ça exécute un sous-shell, donc qui a un environnement différent, et les effets secondaires éventuels (e.g. modification de variable ou du répertoire de travail courant) ne seront pas visibles dans le parent. Dans le cas général, l'utilisation des accolades est la solution correcte.
Je suis en train de lire la doc indiquée par Matthieu Moy : http://ploug.eu.org/doc/guide-bourne-shell.pdf
Cette doc date de 1991, soit seulement 3 ou 4 ans après que j'ai appris à me servir du shell. Il n'est pas question des accolades, ce qui explique probablement pourquoi je ne connaissais que les parenthèses (ça n'existait peut-être pas dans les shells de l'époque). En revanche, une petite phrase concernant les instructions de contrôle devrait à mon avis s'appliquer aussi aux accolades, et faire qu'en l'occurrence il n'y aurait aucune différence entre les deux dans l'exemple donné.
Quand on redirige ou que l'on pipe [sic] les entrées-sorties ou que l'on met dans l'arrière plan une telle structure, celle-ci est exécutée dans un sous-shell. [...] </cit.>
Donc, si ce que je suppose est vrai, { ... } > ${i}.log est équivalent à ( ... ) > ${i}.log à cause de la redirection de stdout vers un fichier.