Если ваша функция называется «foo», то ваша функция завершения может выглядеть так:
Если у вас установлен пакет завершения Bash:
_foo () { local cur; cur=$(_get_cword); COMPREPLY=( $( compgen -c -- $cur ) ); return 0; }
Если вы этого не сделаете:
_foo () { local cur; cur=${COMP_WORDS[$COMP_CWORD]}; COMPREPLY=( $( compgen -c -- $cur ) ); return 0; }
Затем, чтобы включить его:
complete -F _foo foo
Команда compgen -c
заставит завершения включать все команды в вашей системе.
Ваша функция "foo"может выглядеть так:
foo () { cat $(type -P "$@"; }
, что будет cat
одним или несколькими файлами, имена которых передаются в качестве аргументов.