2009-04-22 10 views
15

Zauważyłem, że powłoka bash może sugerować przełączniki linii poleceń dla twojego polecenia.Niespodzianka! powłoka sugeruje przełączniki linii poleceń

Po prostu wpisz swoje polecenie, myślnik (-) i typ tab. Powłoka pokaże Ci dostępne przełączniki.

Na przykład, spróbuj:

[email protected]:~$ java - 

i naciśnij kartę - niespodzianka!

Screenshot

Pytanie brzmi:

Jak mogę współpracować z tej funkcji. Czyli, jeśli napiszę program, który ma być uruchamiany z konsoli, jaki jest interfejs API, aby poinformować powłokę, jakie przełączniki są dostępne?

+1

Hm ... moje szwy w bashach nie mają tej funkcji. Czy muszę go jakoś włączyć? – Burkhard

+0

Działa tylko wtedy, gdy skonfigurowano polecenie, aby użyć go w /etc/bash_completion.d (patrz odpowiedź Mr poniżej.) Próbowałem też, z ls, i to nie działało, ale patrząc na ten katalog widzę to Yast2 ma skrypt ukończenia 100 wierszy na jednym z naszych systemów. Lotta próbuje to ustawić! Może być przyjemnie, jeśli piszesz narzędzie unix, którego wiele osób będzie używać, ale nie do osobistej pracy. Zamiast tego użyj --help z narzędziami gnu. –

Odpowiedz

6

Patrz:

$ man bash 

W szczególności rozdział zatytułowany "readline" i podrozdział "Programowalne uzupełnianie"

5

FYI: W Ubuntu i/lub Debian skrypty są /etc/bash_completion.d/