の場合bash
、その動作はシェル関数によって制御されますcommand_not_found_handle
(「man bash
コマンド実行」のを参照)。
その関数で定義されている動作を確認するには、次のコマンドを発行します。
declare -p -f command_not_found_handle
command_not_found_handle
関数を再定義することで、使用するプログラムを変更できます。
Ubuntu 14.04 LTSでは、デフォルトの動作はで直接定義されているようです/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