Por curiosidade maliciosa, abri 2 terminais, cada um executando o shell bash. Na primeira eu digito:
$ echo $$
11458
e na segunda:
$ echo -n "echo this command" >> /proc/11458/fd/0
Então este texto echo this command
é realmente canalizado para o prompt no primeiro terminal. Mas ao entrar nesse primeiro terminal, esse texto não é executado como um comando, apenas recebo um novo prompt.
Em uma segunda tentativa, executei este comando no primeiro terminal:
$ read line;echo $line
e enquanto a leitura está aguardando entrada, eu novamente ecoo algum texto /proc/11458/fd/0
no segundo terminal. Esse texto aparece no primeiro terminal, mas ao pressionar <enter>
no primeiro terminal, o read
termina e echo $line
mostra que nenhuma entrada foi lida.
Então eu ainda não encontrei uma maneira de fazer mal; tudo o que posso fazer é modificar o texto no primeiro terminal, do segundo terminal. Leitores de tela nesse primeiro terminal, é claro, peguem isso. Por leitores de tela, estou pensando em seleção de mouse ou funções de terminal como Save Contents ...
; Eu tentei ambos.
Mas se eu soubesse como também ecoar, por exemplo, um final de arquivo ou outros caracteres de controle para o primeiro terminal stdin
, não poderia estragar as coisas terrivelmente para os processos no primeiro terminal?