Redirecionamento Stdin e stdout

2

Existe uma declaração

stty onlcr 0>&1

no arquivo rc.sysvinit. O que exatamente essa linha faz? Qual é o motivo para redirecionar stdin para stdout?

    
por Ringger81 28.07.2018 / 10:58

2 respostas

1

$ man stty
...
   * [-]onlcr
          translate newline to carriage return-newline
...

e há até um comentário no arquivo, que você não mencionou:

# Set onlcr to avoid staircase effect.

Então, isso deve deixar claro o que a linha faz. stty opera em stdin por padrão, mas essa linha altera as configurações de saída, então 0>&1 faz com que funcione em stdout . O que pode realmente importar se você tem uma caixa onde o stdout do console é conectado a uma porta serial, e a entrada stdin do console para alguma outra fonte ...

Editar

stty altera os parâmetros do terminal. Para fazer isso, ele deve emitir chamadas de sistema que operam em um identificador de arquivo que corresponde a um terminal. Por padrão, isso é stdin , como diz a manpage:

  -F, --file=DEVICE
          open and use the specified DEVICE instead of stdin

Não tenho certeza de que tipo de exemplo ajudaria você ...

    
por 28.07.2018 / 13:02
0

Se você digitar man stty , receberá a documentação de stty , que, entre outras coisas, diz

[-]onlcr translate newline to carriage return-newline

O motivo do redirecionamento é que stty opera em seu stdin , mas só há stdout disponível no momento em que o comando é executado.

    
por 28.07.2018 / 13:07

Tags