Захват вывода команды не найден

Я пишу функцию bash, которую хочу использовать вывод command-not-found, расположенный в моей системе в /usr/lib/command-not-found. Однако простого $ () не хватает. Выход идет прямо к терминалу. Это заставило меня поверить, что он написал это в STDERR, но с помощью $(/usr/lib/command-not-found $command 2>&1) все еще писал на терминал. Действительно ли он пишет в TTY? Если да, могу ли я каким-то образом захватить этот вывод? Есть ли лучший способ (возможно, API)?

0
задан 21 June 2017 в 03:06

2 ответа

Я не уверен, почему это не работает для вас, но вот что работает на моей машине ...

Как вы можете видеть ниже, я могу сохранить вывод на и затем эхо-содержимое этой переменной.

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
1
ответ дан 18 July 2018 в 11:19

Я не уверен, почему это не работает для вас, но вот что работает на моей машине ...

Как вы можете видеть ниже, я могу сохранить вывод на и затем эхо-содержимое этой переменной.

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
1
ответ дан 24 July 2018 в 19:46

Другие вопросы по тегам:

Похожие вопросы: