OVH Cloud OVH Cloud

redirection

22 réponses
Avatar
le pierre
Bonjour,

j'ai une boucle for en AIX (ksh) et je souhaite rediriger la sortie en
fonction des elements de ma liste :

typiquement :


export LISTE=a b c d e f

for i in $LISTE
do
echo "bonjour"
done > ${i}.log



voila en gros ce que je voudrais faire, mais ca !!ca ne marche pas,
pourquoi et que dois je faire ?


merci

2 réponses

1 2 3
Avatar
Vincent Lefevre
Dans l'article ,
Olivier Miakinen <om+ écrit:

<cit. guide-bourne-shell.pdf, 5.12.5, page 52>
5.12.5 Attention

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.


C'était vrai avec le Bourne shell:

bar:~> sh
$ unset blah
$ { echo 1; blah; echo 2; } > /dev/tty
1
2
$ echo $blah

$

mais pas avec les shells POSIX, comme zsh et bash:

prunille:~> zsh -f
prunille% unset blah
prunille% { echo 1; blah; echo 2; } > /dev/tty
1
2
prunille% echo $blah
17
prunille% ( echo 1; blah=0; echo 2; ) > /dev/tty
1
2
prunille% echo $blah
17
prunille%

prunille:~> sh
sh-2.05b$ unset blah
sh-2.05b$ { echo 1; blah; echo 2; } > /dev/tty
1
2
sh-2.05b$ echo $blah
17
sh-2.05b$ ( echo 1; blah=0; echo 2; ) > /dev/tty
1
2
sh-2.05b$ echo $blah
17
sh-2.05b$

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Avatar
Olivier Miakinen
Le 21/06/2007 18:09, Vincent Lefevre m'a répondu :

<cit. guide-bourne-shell.pdf, 5.12.5, page 52>
5.12.5 Attention

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


C'était vrai avec le Bourne shell:
[...]
mais pas avec les shells POSIX, comme zsh et bash:
[...]


Merci pour la précision (et les exemples).


1 2 3