От help compgen
:
$ help compgen
compgen: compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]
Display possible completions depending on the options.
Intended to be used from within a shell function generating possible
completions. If the optional WORD argument is supplied, matches against
WORD are generated.
Exit Status:
Returns success unless an invalid option is supplied or an error occurs.
Итак, что [-abcdefgjksuv]
означает варианты ?
Другими словами, я хочу знать, как использовать все варианты.
man compgen
, Страница man предназначена для встроенных командных оболочек, поэтому вам придется прокрутить вниз доcompgen
.Ответы:
Опции для
compgen
команды такие же, какcomplete
, кроме-p
и-r
. Сcompgen
man-страницы:Для вариантов
[abcdefgjksuv]
:-a
означает имена псевдонима-b
означает имена встроенных оболочек-c
означает имена всех команд-d
означает имена каталогов-e
означает имена экспортированных переменных оболочки-f
означает имена файлов и функций-g
означает имена групп-j
означает имена работы-k
означает Имена зарезервированных слов Shell-s
означает названия службы-u
означает имена пользователей userAlias-v
означает имена переменных оболочкиВы можете увидеть полную справочную страницу здесь .
источник
complete
, это так же, какcompgen
, кроме-p
и-r
.man bash
и предложил редактировать, чтобы закончить Ваш пост так, чтобы я легко согласился.compgen -G
? Скажем, мой шаблонcompgen -G '*.zip'
и у меня есть файл "foo.zip". compgen найдет foo.zip, но что, если пользователь уже набрал «b». Теперь compgen ничего не должен найти. Если я дам командуcompgen -G '*.zip' "b"
, compgen все равно найдет foo.zipservice networking
и нажав вкладку вернетсяforce-reload reload restart start stop
. Вы знаете, как заставить их использоватьcompgen
?