fish_command_not_found - что делать, когда команда не найдена
Синтаксис
function fish_command_not_found ... end
Описание
Когда fish пытается выполнить команду и не находит её, он вызывает эту функцию.
Он может вывести сообщение об этом и часто также проверяет наличие отсутствующего пакета, который содержал бы команду.
Fish поставляет несколько обработчиков для различных операционных систем и выбирает из них при загрузке этой функции, или вы можете определить свой собственный.
Он получает всю командную строку в качестве одного аргумента на токен, поэтому $argv[1] содержит отсутствующую команду.
Когда вы оставляете fish_command_not_found неопределённым (например, добавив пустой файл функции) или явно вызываете __fish_default_command_not_found_handler, fish просто выведет простое сообщение об ошибке.
Пример
Простой обработчик:
function fish_command_not_found
echo Did not find command $argv[1]
end
> flounder
Did not find command flounder
Или обработчик для команды command-not-found OpenSUSE:
function fish_command_not_found
/usr/bin/command-not-found $argv[1]
end
Или простой обработчик по умолчанию:
function fish_command_not_found
__fish_default_command_not_found_handler $argv
end
Обратная совместимость
Эта команда была добавлена в fish 3.2.0. Предыдущие версии fish использовали «fish_command_not_found» событие вместо этого.
Чтобы определить обработчик, который будет работать и в более старых версиях fish, определите его старым способом:
function __fish_command_not_found_handler --on-event fish_command_not_found
echo COMMAND WAS NOT FOUND MY FRIEND $argv[1]
end
в этом случае fish определит fish_command_not_found, который вызовет его, или определит оболочку:
function fish_command_not_found
echo "G'day mate, could not find your command: $argv"
end
function __fish_command_not_found_handler --on-event fish_command_not_found
fish_command_not_found $argv
end
© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.6/cmds/fish_command_not_found.html