Suponha que eu tenha o seguinte script em execução em um host remoto:
$ cat remote_script
#!/bin/bash
exec 3>file.log
echo "Output to stdout"
echo "Output to stderr" >&2
echo "Output to fd3 >&3
Quando esse script for executado na máquina remota, ele redirecionará fd3
para um arquivo na máquina remota.
Quando me conecto via ssh
ao controle remoto e executo o script
$ ssh user@remote_host "./remote_script"
, então, posso ver a saída de stdin
e stderr
na máquina local. A saída de fd3
, no entanto, ainda vai para o arquivo na máquina remota.
Existe alguma maneira de redirecionar fd3
para ver sua saída na máquina local e ainda ser capaz de distingui-la de stdout
?
Eu já tentei
$ cat remote_script
#!/bin/bash
exec 3>&1
...
$ ssh user@remote_host "./remote_script" 3>local.file.log
mas isso gera apenas um arquivo vazio na máquina local, ou seja, não consigo separar fd3
de stdout
Tags ssh bash linux shell file-descriptors