Comportamento de 1 & 0 no bash

2

Por isso, estou tentando aprender mais sobre os descritores de arquivos e seus redirecionamentos. No momento estou explorando um caso extremo de fazer 1>&0 e não consigo entender bem o que está acontecendo lá.

$ echo hello 1>&0
hello

Portanto, nesse caso, hello é impresso, embora eu tenha redirecionado stdout para stdin. Eu esperava que nada fosse impresso.

Você pode me explicar porque hello é impresso?

    
por clime 03.01.2015 / 17:29

1 resposta

4

Ambos os descritores 0 e 1 foram conectados ao seu terminal no modo de leitura + gravação, portanto, esse redirecionamento não muda nada. No Linux, você pode encontrar todos os seus descritores atuais em /proc/self/fd , por exemplo, no meu caso:

$ ls -l /proc/self/fd
lrwx------ 1 jimmij jimmij 64 Jan  3 17:42 0 -> /dev/pts/2
lrwx------ 1 jimmij jimmij 64 Jan  3 17:42 1 -> /dev/pts/2
lrwx------ 1 jimmij jimmij 64 Jan  3 17:42 2 -> /dev/pts/2
lr-x------ 1 jimmij jimmij 64 Jan  3 17:42 3 -> /proc/5263/fd

Como você pode ver, 0 , 1 e 2 estão todos vinculados ao pseudoterminal /dev/pts/2 .

    
por 03.01.2015 / 17:47