为使用pwd指定自动完成目录的compgen指定另一个目录

时间:2014-05-16 16:13:30

标签: bash bash-completion compgen

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

我是否可以在另一个目录中为某个目录建议目录完成。

例如。如果我在/curr_dir,并且我想为/other_dir生成目录完成,我该怎么办?如何将其指定为compgen,以便我无需转到/other_dir

在我的bash-completion函数中,我尝试在调用cd之前对该目录执行compgen但在按<Tab>后将其留在另一个目录中。

1 个答案:

答案 0 :(得分:3)

  

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

不,它将完成$cur,假设内容是路径。输入要自己尝试一下 命令直接进入你的shell。例如:

$ compgen -d -- "/"
/run
/lib64
/usr
[...]

所以你唯一需要做的就是使用“$ other_dir”而不是“$ cur”。 另外,请记住引用字符串或shell可能会拆分目录名称:

compgen -d -- "$foo" # good
compgen -d -- $foo   # bad