compgen

compgen -o nospace 选项无效
compgen

compgen -o nospace 选项无效

我正在尝试创建一个命令完成功能,并且我正在关注本指南。它大约是这样的: function __my_completion () { local cur prev opts opts_log opts_import COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" opts="-h --help -d --directory -v --version -l --log-level -q --quiet" ...

Admin

为什么我需要在`compgen -G ... | 中使用-I参数xargs 基名`?
compgen

为什么我需要在`compgen -G ... | 中使用-I参数xargs 基名`?

compgen -G我遇到了一种情况,我正在通过管道输出to的输出,但在添加如下所示的参数xargs basename之前无法使其工作。xargs -I这是一个脚本,演示了我正在尝试做的事情,并附有解释性注释。我有两个问题,它们出现在脚本之后。 # create three files for testing: touch /tmp/my.file.1.2.txt touch /tmp/1.my.file.2.txt touch /tmp/1.2.my.file.txt # create a glob and verify that it works wi...

Admin

bash 数组表现得很奇怪
compgen

bash 数组表现得很奇怪

我在 /tmp 下有两个文件夹。 从航站楼出发: ls -d /tmp/firefox-* /tmp/firefox-sy2vakcj.default-esr-charlie-cache /tmp/firefox-sy2vakcj.default-esr-charlie-profile 或者 compgen -G /tmp/firefox-* /tmp/firefox-sy2vakcj.default-esr-charlie-cache /tmp/firefox-sy2vakcj.default-esr-charlie-profile 我也可以将...

Admin

`compgen -A file -G './tmp/*.sh` 意外地显示目录 ./ 中的所有文件以及所需的文件
compgen

`compgen -A file -G './tmp/*.sh` 意外地显示目录 ./ 中的所有文件以及所需的文件

我期望 compgen -A file -G './tmp/*.sh' 只会显示 下的文件tmp/,但也会显示当前目录中的所有文件。 我努力了 compgen -A file -X '!(tmp/*.sh)' 和 compgen -A file -X "!(tmp/*.sh)" 但两者都会导致空输出。检查设置: $ shopt|grep extglob extglob on 还值得注意的是 compgen -A file tmp/*.sh 仅返回第一个有效候选者。顺便说一下,这与默认的行完成结果完全匹配,例如 cp tmp/*....

Admin

bash 脚本可以包含自己的自动完成功能吗?
compgen

bash 脚本可以包含自己的自动完成功能吗?

有很多可用资源(1,2,3)解释了如何利用 bash 自动完成命令和参数的能力,但所有这些资源都需要向用户添加代码,~/.bash_profile或者/etc/bash_completion.d/*有没有办法使脚本及其可用的完成自包含?作为一种粗制和不完整的例子: 〜/ bin / script-with-integrated-autocomplete.sh: #!/usr/bin/env bash function _completions { complete ... } if [ "$1" == "completions" ]; then ...

Admin

Bash 补全自己的 compgen 前缀
compgen

Bash 补全自己的 compgen 前缀

我有一个简单的 bash 完成脚本,它本质上调用我的(非 bash)程序并将其输出设置为COMREPLY,即 COMPREPLY=( $(my-program -- "${COMP_WORDS[@]}") ) 某些选项接受逗号分隔值,有没有办法只处理最后一项的建议?假设用户输入-v opt1,opt2,o<TAB><TAB>,假设我的程序发现此时的有效选项是opt3或opt4。如果我只返回这 2 并按 TAB 键,输出将更改为o(整个前缀消失)。如果我返回opt1,opt2,opt3和opt1,opt2,opt4,它会起作用,但...

Admin

compgen 和 SELinux
compgen

compgen 和 SELinux

我有一个应用程序、浏览器 shell,我正在执行此命令来获取可执行文件列表(列出 $PATH 中的所有二进制文件) compgen -A function -abck | sort | uniq 当我调用这个命令时,它会返回可执行文件,但我从 SELinux 中收到了很多错误,如下所示: SELinux is preventing bash from getattr access on the file /usr/sbin/chronyd. allow this access for now by executing: # ausearch -c ...

Admin

readline 如何使用 compgen 来获取所有适用的补全?
compgen

readline 如何使用 compgen 来获取所有适用的补全?

我正在构建一个替代方案,readline并希望以与制表符完成类似的方式进行readline制表符完成。在 中readline,如果您键入,git <tab>您将获得所有 git 子命令作为自动完成选项。但如果你输入,ls <tab>你会得到文件和目录。非常清楚如何通过compgen使用其中一个选项调用来单独获取这些结果,但不清楚如何调用compgen并获取所给出的同一组完成readline。基本上是从所有适用的来源完成的。我可以提供什么选项来获得这种行为? ...

Admin

如何使用 bash 命令完成以便仅完成特定目录中的文件?
compgen

如何使用 bash 命令完成以便仅完成特定目录中的文件?

假设我有一个 bash 函数specialcat,该cat函数位于 ~/Special 目录中 specialcat () { cat ~/Special/$1 } 假设 ~/Special 目录设置如下: mkdir ~/Special echo This is the first special file > ~/Special/firstfile echo This is the second special file > ~/Special/secondfile Specialcat 函数的用法如下: > sp...

Admin

了解“compgen”内置命令
compgen

了解“compgen”内置命令

从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...

Admin

如何将字符串补全输出到标准输出?
compgen

如何将字符串补全输出到标准输出?

有些git命令有很多选项,在它们中搜索我需要的选项通常很有用 - 我只是在寻找控制TAB中宽度的选项git-gui,但 . 大约有 200 个补全git config。一个明显的解决方法是将所有完成复制到编辑器中并搜索它们,但我宁愿这样做 [something] | grep tab 没有man或info的页面compgen,help compgen甚至没有解释它自己的选项,并且没有自动完成compgen(这是讽刺吗?)。 附:compgen -A不起作用。 PPS:这不是一个关于git-gui- 的问题制表符宽度问题的解决方案在别处。 购买力平...

Admin

使用 compgen 自动完成文件名
compgen

使用 compgen 自动完成文件名

作为我正在编写的更大自动完成函数的一部分,我想使用 compgen 生成文件列表。我阅读了compgen和 的bash 手册条目complete,从那里我认为该选项-G "*"将是解决方案。但我无法让它工作:无论我的输入如何,都会显示当前目录中的文件列表,即: $ cmd <Tab> aa bb cc $ cmd a<Tab> aa bb cc $ cmd aa<Tab> aa bb cc 因此,我尝试使用 来调试它complete,它支持与 compgen 相同的选项,但我得到了相同的结果: $ complete...

Admin