Parece que me lembro de algum comando ou envvar que diz isso. Eu gostaria basicamente que algo executado no terminal, por exemplo, fornecesse
echo $STDIN
/dev/tty
echo $STDOUT
/dev/tty
fdescribe 0 or fdescribe /dev/stdin
/dev/tty
fdescribe 1 or fdescribe /dev/stdout
/dev/tty
mas isso pode ser executado em um script ou subprocesso
Bem, fd 0 está associado a stdin e fd 1 a stdout por definição.
Se você quiser saber quais arquivos são abertos nesses fds em um shell (tipo Bourne ou tipo csh¹), você pode fazer:
No Linux ou Cygwin, consulte também:
Embora a saída seja menos útil se forem soquetes ou tubos.
Novamente no Linux, adicionar
-E
fornecelsof
mais informações sobre alguns tipos de arquivos, como pipes, pseudo-ttys ou alguns soquetes, sobre o que está na outra extremidade, se houver.Versões recentes de
util-linux
também possuem umlsfd
utilitário (específico para Linux) que pode fornecer algumas das mesmas informações quelsof
:Ou
¹ em shells do tipo rc, use
$pid
em vez de$$
e emfish
:$fish_pid