首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使compgen在查找文件时包含目录中的斜杠

使compgen在查找文件时包含目录中的斜杠
EN

Stack Overflow用户
提问于 2012-10-17 19:33:44
回答 2查看 4.8K关注 0票数 25

我想从我的自定义补全中获得以下行为

给定的

代码语言:javascript
复制
$ mkdir foo
$ touch foo faz/bar faz/baz

我想要这个

代码语言:javascript
复制
$ foo -u <tab><tab> =>
foo faz/

$ foo -u fa<tab><tab> =>
foo -u faz/

$ foo -u faz/<tab><tab> =>
bar baz

我假设compgen -f f会输出foo faz/,但它输出的是foo faz,这对我没有多大帮助。

我需要对输出进行后处理吗?或者有没有什么神奇的选项组合可以让compgen发挥作用?

EN

回答 2

Stack Overflow用户

发布于 2014-11-14 18:57:45

这对我很有效:

代码语言:javascript
复制
_my_completion() { 
  compopt -o nospace 
  COMPREPLY=( $(compgen -S "/" -d "${COMP_WORDS[$COMP_CWORD]}") )
}

complete -F _my_completion foo
票数 1
EN

Stack Overflow用户

发布于 2014-11-28 15:29:08

如果您希望在目录完成后能够继续使用tab;以下是完整的解决方案:

代码语言:javascript
复制
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -S "/" -d -- ${cur}) ); 
compopt -o nospace;

首先,在答案后面加上一个斜杠。然后运行compopt -o nospace命令删除尾随空格。现在,如果您的目录中只有foo/bar,那么两个选项卡就足以输入它们!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12933362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档