В оболочке удара при помещении некоторой команды, которая не установлена в системе, она бросает ошибку и также дает Вам предложение установки пакета. Например,
$ iostat
Command 'iostat' not found, but can be installed with:
sudo apt install sysstat
Мой любимый является tcsh, но он не дает предложения установки пакета, в то время как некоторая команда не найдена. Как я могу получить предложение установки пакета (как удар) в tcsh?
Волшебство работает из-за command_not_found
пакет, которые обеспечивают a command_not_found_handle
функция и для удара и для zsh.
Это работает в ударе из-за этого отрывка в /etc/bash.bashrc
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
Существует также файл /etc/zsh_command_not_found
то, что можно получить для получения того поведения для zsh - здесь, функция вызвана command_not_found_handler
.
От быстрого поиска не кажется, что tcsh включают такую функциональность для определения a command_not_found_handle
. Так может быть имя, отличается, в этом случае просто необходимо преобразовать отрывок в tcsh и включать его в Ваш ~/.tcshrc
, еще Вы не можете!