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

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

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

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

  • Удалить предложение автозавершения zsh
  • расширение псевдонима zsh
  • Отключить не потребуется -h
  • pwd не задан правильно в запросе zsh
  • как различать пользовательские сервисы и системные службы в systemd?
  • sudo: nocorrect: команда не найдена
  • Как изменить ключ для автозаполнения в ZSH?
  • Вкладка автозаполнения акцентированных символов с помощью oh-my-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 - лучшая ОС в мире.