Command Not Found Magic에command-not-found
지정된대로 우분투의 후크를 사용하십시오 . 현재 설치할 패키지를 제안하는 데 사용됩니다. 시스템에 설치해야하는 것을 참조하십시오 ./usr/share/doc/command-not-found/README
더 나은 방법은 command-not-found
패키지에 의존하지 않기 때문에 기존 파일 인 if 파일 command_not_found_handle
을 수행하고 다른 모든 경우를 이전 구현에 위임 하기 위해 Bash 내장 을 다시 구현합니다 .xdg-open
$1
# Save the existing code for the handler as prev_command_not_found_handle.
# Bit of a hack, as we need to work around bash's lack of lexical closure,
# and cover the case when it is not defined at all.
eval "prev_$(declare -f command_not_found_handle)" >& /dev/null \
|| prev_command_not_found_handle () {
echo "$1: command not found" 1>&2
return 127
}
# Define the new implementation, delegating to prev_handler.
command_not_found_handle () {
if [ -f "$1" ]; then
xdg-open "$1"
else
prev_command_not_found_handle "$@"
fi
}
좋은 질문, 멋진 기능입니다.
좀 더 생각하면 : bash_completion
핸들러를 확장하지 않으면 생각만큼 기능을 좋아하지 않을 수 있습니다 . 을 열고 file-with-a-long-name.txt
설정 하고 싶다고 상상해보십시오.
alias o='xdg-open'
네 번의 키 누름으로 충분합니다.
o f<Tab><Enter>
전체 파일 이름을 입력하는 데 지루한 26 번이 걸리지 만 피할 수없는 오타에 대한 백 스페이스는 제외됩니다.
command_not_found_handle()
함수를 수정할 수/etc/bash.bashrc
있습니까?