Quand j'ai
exec 3>>file # file descriptor 3 now points to file [ $dryrun ] && exec 3>&1 # or possibly to stdout echo "running">&3 exec 3>&- # and is now closed
Next_available_fd code>? Li>
- Y a-t-il un moyen de dupliquer FD3 à une variable, puis de le rembourser une fois la fonction effectuée?
- et devrais-je m'inquiéter de la filetage et des écritures simultanées à FD3 dans ce cas? LI>
ul> li>
- Je suis en sh, mais peut-être que Bash / ksh / zsh a une réponse à cela? Li>
ul> p>
3 Réponses :
Je ne sais pas quoi que ce soit aussi simple que le fichier et qui démontre que la redirection est limitée à l'appel de la fonction dans chaque cas. P> P> Next_available_fd code>, mais pour obtenir la fonctionnalité que vous souhaitez (rediriger temporairement un descripteur de fichier sans l'affecter à l'extérieur de la fonction) peut être accompli comme suit dans Bash (Je ne sais pas à propos de SH):
résultat1 code>: p>
fichier3 code>: p>
Désolé, quelle partie de votre code d'exemple démontre quoi?
Si votre système utilise le système de fichiers / proc code>, regardez INTÉRIEUR
/ proc / $$ / fd code> pour voir ce qui est en cours d'utilisation. P>
au lieu d'utiliser EXED pour rediriger le descripteur de fichier dans la fonction, vous pouvez (avec bash, je n'ai pas essayé avec d'autres coquilles) faire: dans cette configuration "en cours d'exécution" "ira au fichier ou au stdout d'origine en fonction de $ dryrun, et plus_commands aura FD 3 comme avant que FOO ait été appelé. P> P>