Ubuntu'nun çağrısını Komut Bulunamadı Büyüsü'ndecommand-not-found
belirtildiği gibi kullanın . Şu anda yüklenecek paketleri önermek için kullanılmaktadır. Hangisinin sisteminize kurulması gerektiğine bakın ./usr/share/doc/command-not-found/README
O bağlı değildir, çünkü Daha da iyisi, command-not-found
ambalajın, (yeniden) Bash yerleşiğini uygulamak command_not_found_handle
bir yapmak xdg-open
durumunda $1
varolan bir dosya olduğunu ve önceki uygulanmasına diğer tüm davaları devretme.
# 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
}
İyi soru, şık özellik.
Biraz daha düşünün: bash_completion
işleyiciyi de genişletmedikçe özelliği düşündüğünüz kadar beğenmeyebilirsiniz . Açmak istediğini hayal et file-with-a-long-name.txt
, sonra kur
alias o='xdg-open'
dört tuşa basmanız yeterli olacaktır:
o f<Tab><Enter>
Oysa tam dosya adını yazmak sıkıcı bir 26 sürer ve bu kaçınılmaz yazım hataları üzerinde geri bırakmayı hariç tutar.
command_not_found_handle()
işlevi değiştirebilir misiniz/etc/bash.bashrc
?