Spec-Zone.ru › Fish 3.3

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

© 2021 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.3/cmds/fish_command_not_found.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API