Captura a saída do comando - não encontrado

0

Eu estou escrevendo uma função bash que eu quero usar a saída de command-not-found , localizada no meu sistema em /usr/lib/command-not-found . No entanto, um simples $ () não é suficiente. A saída vai direto para o terminal. Isso me levou a acreditar que ele escreveu para STDERR, mas usando $(/usr/lib/command-not-found $command 2>&1) ainda escreveu para o terminal. Ele realmente escreve para o TTY? Em caso afirmativo, posso capturar a saída de alguma forma? Existe uma maneira melhor (uma API talvez)?

    
por Nonny Moose 21.06.2017 / 00:06

1 resposta

1

Não sei por que isso não está funcionando para você, mas eis o que funciona na minha máquina ...

Como você pode ver abaixo, posso salvar a saída em uma variável e, em seguida, ecoar o conteúdo dessa variável.

user@machine:~$ out=$(/usr/lib/command-not-found abc 2>&1)
user@machine:~$ echo "$out"
No command 'abc' found, did you mean:
 Command 'cbc' from package 'coinor-cbc' (universe)
 Command 'nbc' from package 'nbc' (universe)
 Command 'axc' from package 'afnix' (universe)
 Command 'bc' from package 'bc' (main)
 Command 'atc' from package 'bsdgames' (universe)
 Command 'ajc' from package 'aspectj' (universe)
 Command 'abe' from package 'abe' (universe)
 Command 'ab' from package 'apache2-utils' (main)
 Command 'asc' from package 'asc' (universe)
 Command 'aec' from package 'libaec-tools' (universe)
 Command 'arc' from package 'arcanist' (universe)
 Command 'arc' from package 'arc' (universe)
 Command 'abx' from package 'abx' (universe)
 Command 'alc' from package 'amule-utils-gui' (universe)
 Command 'ac' from package 'acct' (main)
abc: command not found
    
por b_laoshi 21.06.2017 / 00:35