Предположим, у меня есть следующий скрипт на удаленном хосте:
$ 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