Je veux me connecter au gestionnaire pour une commande introuvable
wim@SDFA100461C:~$ thing
No command 'thing' found, did you mean:
Command 'tping' from package 'lam-runtime' (universe)
Command 'thin' from package 'thin' (universe)
thing: command not found
Je veux remplacer ce comportement avec mon propre script.
Plus précisément, je veux vérifier si la commande existe dans la sortie de lsvirtualenv -b
, et si c'est le cas, je veux activer ce virtualenv.
Où dois-je commencer le piratage?
Réponses:
En général
Le Linux Journal a un assez bon article:
Depuis la page de manuel de bash:
et
Ubuntu 14.04
Des preuves empiriques suggèrent que sur une installation Ubuntu 14.04, le fichier / etc / bash_command_not_found n'existe pas, cependant, le fichier correct est un script python, situé dans / usr / lib / command-not-found
la source
/usr/lib/command-not-found
. Sur mon installation Ubuntu 14.04, le fichier/etc/bash_command_not_found
n'existe pas.Pour
bash
, son comportement est régi par la fonction shellcommand_not_found_handle
(Voirman bash
, sous EXÉCUTION DE COMMANDE).Pour voir quel comportement est défini par cette fonction, vous pouvez émettre:
Vous pouvez changer le programme utilisé en redéfinissant la
command_not_found_handle
fonction.Dans Ubuntu 14.04 LTS, il semble que le comportement par défaut soit défini directement dans
/etc/bash.bashrc
:la source