Ich möchte mich in den Handler einbinden, damit der Befehl nicht gefunden wird
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
Ich möchte dieses Verhalten mit meinem eigenen Skript überschreiben.
Insbesondere möchte ich überprüfen, ob der Befehl in der Ausgabe von vorhanden ist lsvirtualenv -b
, und wenn ja, möchte ich diese virtuelle Umgebung aktivieren.
Wo soll ich anfangen zu hacken?
ubuntu
bash
virtualenv
wim
quelle
quelle
Antworten:
Allgemein
Das Linux Journal hat einen ziemlich guten Artikel:
Aus der Manpage von bash:
und
Ubuntu 14.04
Empirische Daten deuten darauf hin, dass bei einer Ubuntu 14.04-Installation die Datei / etc / bash_command_not_found nicht vorhanden ist. Die richtige Datei ist jedoch ein Python-Skript, das sich unter / usr / lib / command-not-found befindet
quelle
/usr/lib/command-not-found
. In meiner Ubuntu 14.04-Installation existiert die Datei/etc/bash_command_not_found
nicht.Denn
bash
sein Verhalten wird von der Shell-Funktion bestimmtcommand_not_found_handle
(sieheman bash
unter BEFEHLSAUSFÜHRUNG).Um zu sehen, welches Verhalten von dieser Funktion definiert wird, können Sie Folgendes ausgeben:
Sie können ändern, welches Programm verwendet wird, indem Sie die
command_not_found_handle
Funktion neu definieren.In Ubuntu 14.04 LTS scheint das Standardverhalten direkt definiert zu sein in
/etc/bash.bashrc
:quelle