Spec-Zone.ru › Fish 3.5

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

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

Spec-Zone.ru

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