2016-08-06 12 views
3

Ich habe ein Shell-Skript, das ich mit source ausgeführt werden soll und es auf meinem Weg ist also, wenn ich den Namen der Eingabe beginnen und drücken Sie Tab es autocompletes ...Wie kann ich eine Datei auf meinem Pfad "quellen" und tab-complete haben?

foo.sh 

aber wenn ich versuchen, diese ...

source foo (then hit the tab button) 

es wird nicht automatisch vervollständigt. Es durchsucht mein Arbeitsverzeichnis, aber nicht meinen Pfad. Gibt es trotzdem, um es die Datei zu finden, die in meinem Weg ist?

Ich habe bash Version 3.2.57(1)-release

Antwort

2

Sie können Ihre bashrc setzen diese in:

complete -c source 

-c steht für Befehlsnamen, die effektiv in PATH suchen. Aber das erfordert, dass die Dateien ausführbar sind. Sie könnten das weiter ausführen und eine benutzerdefinierte Vervollständigungsfunktion programmieren, die find verwendet, um alle Shell-Skripts in PATH abzurufen.

+1

"Wenn der Dateiname keinen Schrägstrich enthält, werden Dateinamen in PATH verwendet, um das Verzeichnis mit dem Dateinamen zu finden." – chepner

+0

Siehe auch die 'shopt' Option 'sourcepath'. – cdarke