Bonsoir,
j'ai vraiment du mal à comprendre comment fonctionne les redirections, en dehors du basique > 2>&1 ça se corse.
Dans une fonction, qui déroule des étapes, je veux que soit redirigé stdout vers un fichier (que ce soit fifo ou pas, pour l'instant peu importe).
À la fin de cette fonction, j'imagine rétablir stdout dans le descripteur dédié: 1
je voyais ça :
Je voudrais déjà être sûr d'avoir bien compris qu'en théorie, cette syntaxe là fonctionne, qu'elle veut bien dire ce que j'ai compris qu'elle disait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function une { # début de fonction exec 3>&1 # sauvegarde de 1 dans 3 nouvellement créé exec > fic # ou "$fic_version_variable" # là, le moindre echo devrait aller dans fic echo "mais comment ça marche ?!" echo "tout est tellement puissant en prog, mais en bourne shell aussi pas mal ... si on maîtrise" # ci-dessous fin de fonction exec 1>&3 # récupère 1 à partir de &3 exec 3>&- # ferme &3 # fin de l'histoire, ressort sur le terminal et pas dans fic ! echo "bingo ?" }
Après j'approfondirai parce que je ne fais pas de simple echo, j'envoie une chaîne dans une autre fonction, et en plus idéalement dans un fichier fifo. (Et je me demande si les exec se répercutent dans la fonction appelée (une fonction deux) de par les exec (redirections) exécuter dans la fonction mère ou pas, mais d'abord, tel quel est ce que ça doit fonctionner ?).
Partager