Como mostrado no seu:
$ trap -p DEBUG
trap -- 'preexec_invoke_exec' DEBUG
Você tem um trap DEBUG
que executa comandos antes de cada comando. Pelo jeito, parece que o comando preexec_invoke_exec
(eventualmente) tenta atualizar o título do seu emulador de terminal com o comando sendo executado.
No entanto, para fazer isso, ele grava a seqüência de escape para stdout em vez de para o terminal.
Você deve identificar onde isso é feito e adicionar um redirecionamento > /dev/tty
para garantir que seja sempre enviado ao dispositivo tty mesmo quando o stdout for redirecionado como dentro dessa substituição do comando $(...)
.
Observe também que se preexec_invoke_exec
for emular zsh
preexec
, estará fazendo algo errado, pois o preexec
hook em zsh
é destinado apenas a ser executado uma vez após uma linha de comando foi aceito e antes de ser executado, não para cada comando nessa linha de comando.