Quiero conectarme al controlador para el comando no encontrado
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
Quiero anular este comportamiento con mi propio script.
Específicamente, quiero verificar si el comando existe en la salida de lsvirtualenv -b
, y si es así, quiero activar ese virtualenv.
¿Dónde debería comenzar a hackear?
ubuntu
bash
virtualenv
wim
fuente
fuente
Respuestas:
En general
El Linux Journal tiene un artículo bastante bueno:
De la página de manual de bash:
y
Ubuntu 14.04
La evidencia empírica sugiere que en una instalación de Ubuntu 14.04, el archivo / etc / bash_command_not_found no existe, sin embargo, el archivo correcto es un script de Python, ubicado en / usr / lib / command-not-found
fuente
/usr/lib/command-not-found
. En mi instalación de Ubuntu 14.04, el archivo/etc/bash_command_not_found
no existe.Para
bash
, su comportamiento se rige por la función de shellcommand_not_found_handle
(Verman bash
, bajo la EJECUCIÓN DE MANDO).Para ver qué comportamiento define esa función, puede emitir:
Puede cambiar qué programa se utiliza redefiniendo la
command_not_found_handle
función.En Ubuntu 14.04 LTS, parece que el comportamiento predeterminado se define directamente en
/etc/bash.bashrc
:fuente