Как определить функцию, которая обрабатывает `command not found`?

Я хотел бы определить функцию, которая вызывается, всякий раз, когда пользователь оболочки вводит команду, которая не существует. В моем случае я хотел бы зарегистрировать ошибки и попробовать альтернативные команды.

в настоящее время при вводе, например, dgfgsdjagfghsdg ошибка zsh: command not found: dgfgsdjagfghsdg .

Есть ли способ определить функцию, которая получает типизированную команду (+ аргументы) в качестве параметра?

  • печать строки "canonical print-escaped form"
  • zsh добавляет символ табуляции при автозаполнении
  • Избегание «BASH-isms» в сценариях оболочки
  • Развернуть переменную в определении функции в zsh
  • Как установить правила автозаполнения Zsh для второго аргумента (функции) в правила существующей команды?
  • Gnome-terminal и Zsh: сохранить текущий каталог на новой вкладке / окне
  • zsh отказывается принять новый сценарий автозаполнения
  • Получение относительных связей между двумя путями
  • One Solution collect form web for “Как определить функцию, которая обрабатывает `command not found`?”

    Да.

    • В оболочке Z это функция с именем command_not_found_handler .
    • В оболочке Bourne Again это функция с именем command_not_found_handle .

    дальнейшее чтение

    • Ошибка перехвата «команда не найдена» в zsh
    • как локально переопределить команду 'command_not_found_handle'?
    • (2x) zsh: команда не найдена
    • Никакая команда 'bla' не найдена, вы имели в виду 😕
    Linux и Unix - лучшая ОС в мире.