Sintaxe confusão sobre o fechamento de descritores de arquivos

0

Descobri a maior parte da sintaxe sobre o fechamento de descritores de arquivos. Tomando como exemplo: n>&- , estou fechando um descritor de arquivo chamado n, estou certo?

Mas eu sabia que se eu quiser redirecionar algo para outro descritor de arquivo, devo fazer isso desta forma n>&1 , então o & é usado como marcador para descritores de arquivo, somente quando > ou outros comandos de redirecionamento são usados, e isso também deve estar correto, certo?

Além disso, o símbolo - pode ser usado para redirecionamento de / para stdin ou stdout como em: cat -

Então, tendo em conta as regras acima, por que n>&- deve fechar um descritor de arquivo? Parece um redirecionamento para stdin ...

PS: Para referências, usei o link e link

    
por Luca 02.03.2017 / 18:59

1 resposta

1

Existem regras e há exceções.

man bash | grep -C 3 '&-'
       Each redirection that may be preceded by a file descriptor  number  may
       instead be preceded by a word of the form {varname}.  In this case, for
       each redirection operator except >&- and <&-, the shell will allocate a
       file  descriptor  greater than or equal to 10 and assign it to varname.
       If >&- or <&- is preceded by {varname}, the value  of  varname  defines
       the file descriptor to close.
    
por 02.03.2017 / 19:14