Aparece, com base no seu comentário, que a saída que você está vendo é o conteúdo de arquivos que possuem um único nome de arquivo de caractere que corresponde ao nome do primeiro desses arquivos. A razão é que o caractere ?
em seu comando grep está sendo expandido pelo shell antes de ser executado.
Assim, seu comando ps está fazendo o que deveria, mas o grep está ignorando completamente essa entrada em vez de digitar arquivos na linha de comando.
Demonstre isso por si mesmo fazendo algo como:
mkdir ~/tempdir
cd ~/tempdir
ps -eo 'tty,pid,comm' | grep ?
que criará um diretório vazio (sem arquivos), o que permitirá que o ?
falhe em expandir e passe diretamente para o grep. Em seguida, crie dois arquivos como este:
touch a
echo thisisfilebwithana > b
e, em seguida, execute novamente apenas o grep, desta forma:
grep ?
e você verá
thisisfilebwithana
porque grep
viu isto:
grep a b
que interpretou como "mostre-me todas as linhas do arquivo b que contêm um 'a'".
O que você provavelmente quer fazer é fugir do ponto de interrogação:
ps -eo 'tty,pid,comm' | grep \?
ou
ps -eo 'tty,pid,comm' | grep '?'