1

Предположим, у меня есть следующий скрипт на удаленном хосте:

$ cat remote_script
#!/bin/bash

exec 3>file.log

echo "Output to stdout"
echo "Output to stderr" >&2
echo "Output to fd3 >&3

Когда этот скрипт выполняется на удаленной машине, он перенаправляет fd3 в файл на удаленной машине. Когда я подключаюсь через ssh к удаленному и запускаю скрипт

$ ssh user@remote_host "./remote_script"

затем я вижу вывод stdin и stderr на локальной машине. Вывод fd3 , однако, все еще идет в файл на удаленной машине.

Есть ли способ перенаправить fd3 чтобы увидеть его выходные данные на локальном компьютере и все же отличить его от стандартного stdout?

Я уже пробовала

$ cat remote_script
#!/bin/bash

exec 3>&1
...

$ ssh user@remote_host "./remote_script" 3>local.file.log

но это только генерирует пустой файл на локальной машине, т. е. я не могу отделить fd3 от stdout

0