Quando o bash encontra um comando desconhecido (palavra?), Ele faz o seguinte:
The program 'hello' can be found in the following packages:
* hello
* hello-debhelper
Try: sudo apt-get install <selected package>
o que eu gostaria de saber é como isso é feito, para que eu possa editá-lo ou adicionar algo antes dele para cruzar a palavra desconhecida de um dicionário caseiro que teria frase: pares de respostas que podem ser enviados para a saída.
Sou culpado de não procurar o suficiente por aí .. mas os poucos guias do bash que tentei desenterrar não tinham nada a ver. Talvez eu esteja olhando para os lugares errados ... alguma dica?
E sim, estou fazendo isso, assim, toda vez que digito wtf quando um programa falha, quero algo de bom jogado de volta para mim ...
Respostas:
Procure em sua
/etc/bash.bashrc
para acommand_not_found_handle
definição da função.Se você deseja remover esse comportamento, coloque-o no seu .bashrc
Se você deseja personalizar, pode fazer
fonte
declare -p -f command_not_found_handle
Isso pode ser potencialmente útil ...
O pacote de comando não encontrado é o que fornece a resposta mágica. Não tenho certeza se é possível personalizá-lo, mas pode valer a pena dar uma olhada.
Outra opção para fazer o que eu acho que você está tentando fazer seria adicionar um alias ao seu arquivo .bashrc que imprime uma mensagem sempre que você digita 'wtf' ou algo assim:
Adicione isso ao seu arquivo ~ / .bashrc e faça:
source $HOME/.bashrc
Isso imprimiria uma mensagem sempre que você digitasse
wtf
no seu terminal. Você também pode fazer com que esse alias chame um script que imprima uma mensagem mais detalhada ou algo semelhante. As possibilidades são infinitas!fonte
Esse comportamento é definido no arquivo de configuração do Bash em todo o sistema
/etc/bash.bashrc
:Para personalizá-lo, basta substituir esta função por conta própria
~/.bashrc
:fonte
@ user606723, se você quiser se livrar desse comportamento em sua totalidade:
Se isso não funcionar, tente o seguinte:
Se você deseja recuperar o comportamento:
fonte