加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何从我自己的脚本提供标签完成鱼壳?

发布时间:2020-12-16 01:26:12 所属栏目:安全 来源:网络整理
导读:我正在运行Ubuntu 13.10和鱼2.1.0.我想自己写一个 Python脚本来从命令行执行一些任务.该脚本将需要命令行参数. 我如何写我的脚本,以便鱼可以请求并获得给定参数的可能值.潜在值列表是动态的.也就是说,它将被程序确定(例如,与某些标准匹配的文件夹名称的列表)
我正在运行Ubuntu 13.10和鱼2.1.0.我想自己写一个 Python脚本来从命令行执行一些任务.该脚本将需要命令行参数.

我如何写我的脚本,以便鱼可以请求并获得给定参数的可能值.潜在值列表是动态的.也就是说,它将被程序确定(例如,与某些标准匹配的文件夹名称的列表).

我目标的最终结果是:

user@machine ~> myprog argument=fol<TAB>
folder1  folder2  folder3

其中myprog是我的脚本文件,参数是参数名称,folder1等是我脚本中某些函数生成的有效值.

这是可能的,如果是这样的话?

改编自 zanchey’s comment on GitHub:

如果你有一个程序myprog,它采用–_ completion选项,你可以为myprog编写一个完整的存根,如下所示:

complete --command myprog --arguments (myprog --_completion (commandline -cp)

然后,您的程序将被调用为myprog –_在此处完成myprog一些参数,您可以通过适当的完成进行响应.它应该只返回正在完成的当前令牌(您也可以使用(commandline -ct)将其传递给程序,或者自己进行令牌化),然后可以选择通过选项卡和简短描述.多个完成用新行分隔.

笔记:

> __完成是由python-selfcompletion库建议的约定,但您可以使用任何您想要的,而这个答案不是Python特定的
>没有办法指定默认完成,如dbarnett/python-selfcompletion#2 (GitHub comment)所述.您一定要为每个命令创建一个短小的存根.

对于Python脚本,以下库可能会在将来的某个时刻支持鱼类完成(但是还没有):

> argcomplete
> python-selfcompletion

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读