je vois dans certains scripts bash Linux, tels que configure
scripts générés par autoconf
, des séquences comme celle-ciquel est le point de créer un descripteur de fichier, puis écho à ce
exec 5>>config.log
(...)
echo foo >&5
(...)
echo bar >&5
(répété plusieurs fois)
Il me semble, on pourrait tout faire
echo foo >>config.log
qui est plus simple. Alors, quel est le point de le faire avec exec
. Il doit y avoir une raison que je ne comprends pas. Qu'Est-ce que c'est?
Possiblement pour la performance; il ne nécessite pas de rouvrir le fichier chaque fois que vous voulez lui envoyer quelque chose. Il a aussi d'autres différences dans la sémantique; par exemple, si vous supprimez le fichier à mi-chemin de l'exécution du script, il ne recréera pas le fichier et placera la seconde moitié de la sortie s'il contient à la place un descripteur de fichier ouvert. – davmac
@davmac Je pense que vous pourriez poster cela comme une réponse. – melpomene