特定目录中某些类型的文件的bash完成

前端之家收集整理的这篇文章主要介绍了特定目录中某些类型的文件的bash完成前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有〜/ .unison / *.prf中存在的一致性配置文件列表.

我想要完成bash,这样当我打开一个或一致的gtk并点击标签时,它会列出.prf文件从该文件夹没有.prf部分.

也许一个例子会更清楚:

  1. $ls ~/.unison/*.prf
  2. default.prf dot-mozilla.prf to-desktop.prf
  3.  
  4. $cd ~ # just to show you don't have to be in the ~/.unison folder
  5. $unison to<tab>
  6. $unison to-desktop

我预见需要另一个工具,所以如果有部分可以重复使用会很方便.

如果您正在运行debian / ubuntu或其他GNU / Linux发行版,则应在/etc/bash_completion.d/目录中显示此类完成的示例.以下是一个示例,说明如何设置一致的完成脚本:
  1. have unison &&
  2. _unison_show()
  3. {
  4. local cur
  5.  
  6. COMPREPLY=()
  7. cur=${COMP_WORDS[COMP_CWORD]}
  8. COMPREPLY=($( compgen -W "$(for x in ~/.unison/*.prf; do echo $(basename ${x%.prf}); done)" -- $cur ) )
  9. }
  10. complete -F _unison_show unison

猜你在找的Bash相关文章