问题标签 [compgen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
620 浏览

bash - Bash: compgen How to get rid of Warning message [option may not work as you expect]?

I am making a simple bash completion program using compgen

however when using compgen -F option, the warning message keep prompt out and break my list of work

I am using Ubuntu 12.04. How can I get rid of this or debug it? Thanks

0 投票
1 回答
5638 浏览

bash - 如何自动完成嵌套的多级子命令?

我正在尝试为我自己的一组命令开发自动完成或制表符完成功能。

例如,假设 foo 是我的二进制文件:

它应该显示主要命令configureshow.

然后,如果我选择configure,它应该显示子命令CMDSP并且NPU

我只知道如何为第一级完成制表符和显示 - 我怎样才能获得第二级?

我会把它放在/etc/completion.d.

我的代码:

我被困在如何CM DSP NPUconfigure.

0 投票
1 回答
441 浏览

bash - bash complete() 中的空格和后缀

我在使用compgenshell 内置时遇到了两个困难。我尝试用简单的类似 bash_filedir的(使用ls)代码来展示它:

在这种情况下,当cur=="usr/li"thenprefix=="/usr/"sufix=="li"

我有两个困难。有空间和更换。例如:

我得到:

我需要:

此代码仅作为示例。

0 投票
1 回答
6160 浏览

windows - 在 Windows 命令提示符中列出所有可用命令的命令

我想以编程方式获取 Windows 命令提示符 ( cmd.exe) 中所有可用命令的列表。compgen -cBash 中是否有类似的东西,但适用于 Windows?

0 投票
2 回答
593 浏览

linux - 子进程库不会执行 compgen

我正在尝试列出我的 linux (Lubuntu) 机器上可用的每个命令。我想在 Python 中进一步使用该列表。通常要在控制台中列出命令,我会编写“compgen -c”并将结果打印到标准输出。

我想使用 Python 子进程库执行该命令,但它给了我一个错误,我不知道为什么。

这是代码:

这是我得到的错误:

我被困住了。你们能帮我解决这个问题吗?如何使用子进程执行 compgen 命令?

0 投票
1 回答
1895 浏览

bash - 指定另一个目录来 compgen 用于自动完成目录,而不是使用 pwd

compgen -d -- $cur只会建议 pwd 中的目录完成吗?

我可以让它在另一个目录中建议某个目录的目录完成吗?

例如。如果我在/curr_dir,并且我想生成目录完成,/other_dir我该怎么办?我如何将其指定为compgen,这样我就不需要去/other_dir

在我的 bash-completion 函数中,我尝试cd在调用之前对该目录执行 a 操作,compgen但在按下<Tab>.

0 投票
1 回答
1020 浏览

bash - 使用 compgen 为另一个命令自动完成,使用哪个标志?

我有一个自定义的自动完成命令(调用它commandA

commandB我想窃取 commandA 第一个参数的自动完成选项

因此,例如,commandA 的参数 1 的选项是:

abcdef abcabc abc123

我想要一些类似的东西 compgen -? "commandA"compgen -? "commandA abc"生成上面的列表。

0 投票
1 回答
180 浏览

bash - Bash:自动补全、回显和光标移动

我正在尝试编写一个自动完成脚本。它还应该输出一些描述。我有一个管理自动完成和获取描述的功能。自动完成相关部分工作正常,但当我想显示帮助时遇到问题。简而言之,这就是我现在所拥有的:

我想要什么:

自动完成和输出之间没有冲突。只有当 myOption1 完成时才能显示描述。(myOpt 将作为 myOption1 完成,因此不显示描述)。我做了几次尝试让它工作,但我想我错过了一步。“myOption1 的描述”是一个“回声”。我认为这是相关的,因为compgen正在等待一些价值(我暂时不给它)。我试图用一些转义字符、空格来欺骗 compgen:没有成功。自动完成脚本应在此描述之后继续运行。

在此先感谢您的帮助 ;-)

科尔

0 投票
3 回答
1203 浏览

bash - 在bash中列出文件中的所有变量

在编写 bash 脚本时,我喜欢编写自包含函数,这些函数接受一个参数并基于该/那些参数执行操作,而不是在代码中的几个不同位置声明全局变量,从而降低可读性。

当您有一个需要使用多个变量的函数时,就会出现问题。将诸如 10 个变量之类的东西传递给一个函数简直是丑陋的,为此可以使用一个简单的关联数组。

如果我们想在外部文件中声明这些变量,“source”命令允许您将它们全部导入。

那么问题就变成了,如何列出仅在此文件中声明的变量,以便可以使用它们构建关联数组?我已经能够使用“compgen”和循环的组合从变量列表中构建关联数组,但是如何只列出文件中找到的变量,无论它们被称为什么,所以我可以循环他们并建立我的阵列?

0 投票
0 回答
256 浏览

bash - compgen 不会进入目录

我已经定义了一个 bash_completion 脚本。在某些情况下,我想回退到大多数命令默认发生的基于文件的基本完成。为此,我正在使用compgen,但我无法让它进入子目录。

想象一下,我在一个目录中运行 compgen,该目录包含一个名为bin. 当我跑步compgen -f bi时,我得到了bin。我希望这会返回bin/,然后允许我再次推动 TAB 以下降到bin目录的内容中。但取而代之的是,complete只获得一个值并假设它已到达处理结束。这与 bash 完成的工作方式不同,通常ls bi[TAB]会导致ls bin/.

由于我无法让它工作,暂时我已经编写了自定义代码,该代码下降到目录中以执行正确的 bash 完成,但必须有一种方法可以compgen直接执行此操作。